เปลี่ยนคำถามให้กระชับขึ้นครับ
ขอคำแนะนำ ต้องการรัน VBA ที่อยู่ใน workbook อื่น
สมมติ ไฟล์ชื่อ A.xlsm และ B.xlsm ตัวมาโคร ชื่อ C อยู่ใน B.xlsm
นำ code vba มาใส่ไว้ใน A.xlsm
เมื่อเปิดไฟล์ไว้ทั้งคู่ จะรันไม่ได้
แต่ถ้าปิดไฟล์ B.xlsm ก่อนจะรันได้ แต่ว่านำไปใช้ต่อไม่ได้เนื่องจากไฟล์ B ได้รับข้อมูลมาสำหรับประมวลผลแล้ว
โดย code ที่ใช้ได้มาจาก chat gpt
Sub RunMacroInOtherWorkbook()
Dim otherWorkbook As Workbook
Dim otherWorksheet As Worksheet
Dim WB1 As String
Dim Macro1 As String
WB1 = "B.xlsm"
Macro1 = "C"
' Set otherWorkbook as the external workbook (change the path as needed)
Set otherWorkbook = Workbooks.Open("D:\B.xlsm")
' Set otherWorksheet as the specific worksheet in the other workbook
Set otherWorksheet = otherWorkbook.Sheets("D") ' Replace "Sheet1" with the name of the worksheet
Run "'" & WB1 & "'!" & Macro1
' Run your macro in the other workbook here
' Example:
' otherWorkbook.Run "YourMacroName"
' Add a delay before checking the next cell (e.g., 1 second)
Application.Wait Now + TimeValue("00:00:10")
End Sub
ขอบคุณครับ
ขอคำแนะนำ ต้องการรัน VBA ที่อยู่ใน workbook อื่น
ขอคำแนะนำ ต้องการรัน VBA ที่อยู่ใน workbook อื่น
สมมติ ไฟล์ชื่อ A.xlsm และ B.xlsm ตัวมาโคร ชื่อ C อยู่ใน B.xlsm
นำ code vba มาใส่ไว้ใน A.xlsm
เมื่อเปิดไฟล์ไว้ทั้งคู่ จะรันไม่ได้
แต่ถ้าปิดไฟล์ B.xlsm ก่อนจะรันได้ แต่ว่านำไปใช้ต่อไม่ได้เนื่องจากไฟล์ B ได้รับข้อมูลมาสำหรับประมวลผลแล้ว
โดย code ที่ใช้ได้มาจาก chat gpt
Sub RunMacroInOtherWorkbook()
Dim otherWorkbook As Workbook
Dim otherWorksheet As Worksheet
Dim WB1 As String
Dim Macro1 As String
WB1 = "B.xlsm"
Macro1 = "C"
' Set otherWorkbook as the external workbook (change the path as needed)
Set otherWorkbook = Workbooks.Open("D:\B.xlsm")
' Set otherWorksheet as the specific worksheet in the other workbook
Set otherWorksheet = otherWorkbook.Sheets("D") ' Replace "Sheet1" with the name of the worksheet
Run "'" & WB1 & "'!" & Macro1
' Run your macro in the other workbook here
' Example:
' otherWorkbook.Run "YourMacroName"
' Add a delay before checking the next cell (e.g., 1 second)
Application.Wait Now + TimeValue("00:00:10")
End Sub
ขอบคุณครับ