EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
Public Sub Save()
Dim source As Range
Dim target As Range
With Workbooks("สหกรณ์.xlsm").Sheets("POS")
Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
End With
With Workbooks("Stockยอดขาย.xlsx").Sheets("ม.ค.61") <<<<< error บรรทัดนี้ครับ
Set target = .Range("C2")
End With
source.Copy
target.PasteSpecial xlPasteValues
Application.CutCopyMode = fasle
End Sub
Code: Select all
Public Sub Save()
Dim source As Range
Dim target As Range
With Workbooks("สหกรณ์.xlsm").Sheets("POS")
Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
End With
Workbooks.Open ("Stock" & ".xlsx") ติดตรงนี้ หรือผม ใส่ code ผิดตรงไหนครับ
With Workbooks("Stock.xlsx").Sheets("2")
Set target = .Range("C2")
End With
source.Copy
target.PasteSpecial xlPasteValues
Application.CutCopyMode = fasle
End Sub
Workbooks("Stock.xlsx").Sheets("2")
เปลี่ยนเป็น With Workbooks("Stock.xlsx").Sheets(2)
ครับCode: Select all
Public Sub Save()
Dim source As Range
Dim target As Range
With Workbooks("Êˡóì.xlsm").Sheets("POS")
Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
End With
Workbooks.Open ("Stock" & ".xlsx")
With Workbooks("Stock.xlsx").Sheets(2)
Set target = .Range("C2")
End With
source.Copy
target.PasteSpecial xlPasteValues
Application.CutCopyMode = fasle
End Sub
Code: Select all
Workbooks.Open ("Stock" & ".xlsx")
Code: Select all
Workbooks.Open Path\Stock.xlsx
Code: Select all
Workbooks.Open "C:\Users\Downloads\Stock.xlsx"
Workbooks.Open ("Stock" & ".xlsx")
ให้เป็น Comment หรือลบทิ้งไปได้ครับCode: Select all
Public Sub save()
With Workbooks("ÃѺà¢éÒ.xlsm").Sheets(1)
Set co = .Range("a3:a41", .Range("d" & .Rows.Count).End(xlUp))
End With
co.Copy
Workbooks.Open "C:\Users\it-support.cmk\Desktop\testmarcro\ÊÃØ»ÂÍ´ÃѺ.xlsx"
With Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").Sheets(1).Select
If Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = "" Then
Range("B" & Rows.Count).End(xlUp).Offset(1, -1) = Now()
End If
Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = fasle
End With
Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").save
Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").Close
With Workbooks("ÃѺà¢éÒ.xlsm").Sheets(1).Select
End With
End Sub
Code: Select all
Public Sub Save()
Dim source As Range
Dim Lr As Integer
Dim mySheet As String
Application.ScreenUpdating = False
With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
LL = Application.CountIf(.Range("a3:a41"), "<>")
Set source = .Range("a3", .Range("a" & .Rows.Count).End(xlUp)).Resize(LL, 4)
Workbooks.Open "C:\Users\it-support.cmk\Desktop\testmarcro\สรุปยอดรับ.xlsx"
source.Copy
With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
mySheet = Format(.Range("a1").Value, "mmm")
End With
Windows("สรุปยอดรับ.xlsx").Activate
Worksheets(mySheet).Activate
Lr = Range("b" & Rows.Count).End(xlUp).Row + 1
Range("b" & Lr).PasteSpecial xlPasteValues
With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
Range("b" & Lr).Offset(0, -1).Resize(LL, 1).Value = .Range("a1").Value
End With
End With
Application.CutCopyMode = False
Workbooks("รับเข้า.xlsm").Activate
Application.ScreenUpdating = True
End Sub
Code: Select all
Private Sub Worksheet_open()
Range("formtime") = Now()
End Sub
ปรับเป็นlnongkungl wrote:ขอบคุณครับ puriwutpokin ได้แล้วครับ
แต่มีข้อสงสัยอีกอย่างครับ
คือผมเขียนโค๊ดไว้แบบนี้ครับแต่ทำไมเมื่อปิดแล้วเปิดใหม่ formtime ไม่อัพเดทเวลาเป็นปัจจุบันครับ ต้องไปกด run ถึงจะอัพเดท ทั้งๆที่ ผมเขียนไว้ใน sheet เลยCode: Select all
Private Sub Worksheet_open() Range("formtime") = Now() End Sub
Code: Select all
Range("a1") = Now()