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
Sub Run_rate()
Dim dayOfMth As Variant, dataAll As Range
Dim rngCur As Range, r As Range
With Workbooks("Year 2023.xlsx").Worksheets("AVG_SGD")
Set dataAll = .Range("B3:M33")
End With
With Workbooks("Main.xlsm").Worksheets("Rate_BOT")
dayOfMth = VBA.Split(VBA.Mid(.Range("A1"), VBA.InStr(.Range("A1"), "as of") + 6), " ")
Set rngCur = .Range("B:B").Find("SGD").Offset(0, 3)
End With
For Each r In dataAll
If r.Parent.Cells(r.Row, "A").Value = "Day " & dayOfMth(0) And _
Application.Text(r.Parent.Cells(2, r.Column), "[$- ]mmmm") = dayOfMth(1) Then
r.Value = rngCur.Value
Exit For
End If
Next r
'Dim dayOfMth As Variant, dataAll As Range
'Dim rngCur As Range, r As Range
With Workbooks("Year 2023.xlsx").Worksheets("AVG_USD")
Set dataAll = .Range("B3:M33")
End With
With Workbooks("Main.xlsm").Worksheets("Rate_BOT")
dayOfMth = VBA.Split(VBA.Mid(.Range("A1"), VBA.InStr(.Range("A1"), "as of") + 6), " ")
Set rngCur = .Range("B:B").Find("USD").Offset(0, 3)
End With
For Each r In dataAll
If r.Parent.Cells(r.Row, "A").Value = "Day " & dayOfMth(0) And _
Application.Text(r.Parent.Cells(2, r.Column), "[$- ]mmmm") = dayOfMth(1) Then
r.Value = rngCur.Value
Exit For
End If
Next r
Windows("Year 2023.xlsx").Activate
End Sub
กรุณาแนบไฟล์ตามที่ระบายสีไว้ในข้อความด้านบนพร้อมปรับ Code ให้อ้างอิงถึงไฟล์นั้นด้วย ปัจจุบันใน Code อ้างอิงถึงไฟล์ชื่อ
Year 2023.xlsx
ช่วยทบทวนดูใหม่ว่าที่จริงแล้วคือไฟล์ไหนครับCode: Select all
With Workbooks("Main.xlsm").Worksheets("Rate_BOT")
dayOfMth = VBA.Split(VBA.Mid(.Range("A1"), VBA.InStr(.Range("A1"), "as of") + 6), " ")
Set rngCur = .Range("B:B").Find("SGD").Offset(0, 3)
End With
dayOfMth
ได้Set rngCur = .Range("B:B").Find("SGD").Offset(0, 3)