Page 1 of 1

ต้องการแก้ไขสูตรข้ามไฟล์ด้วย VBA

Posted: Sat Oct 05, 2024 11:28 pm
by tigerwit
จากไฟล์ที่แนบมา
ไฟล์ Update.xlsb เป็นไฟล์ที่มี Code เพื่อสั่งให้แก้ไขข้อความหรือสูตรอีกไฟล์หนึ่ง (ไฟล์ชื่อ PP6.xlsb)
ถ้าต้องการจะให้สามารถแก้ไขได้ โดยชื่อไฟล์ไม่จำเป็นต้องเป็น PP6.xlsb
จะต้องปรับ Code อย่างไรครับ

Code: Select all

Sub Edit_Fomula()
'Dim CltWB As Workbook
'Dim SrWB As Workbook
'Set CltWB = ActiveWorkbook
On Error GoTo ErrorHandler
Workbooks("PP6.xlsb").Activate
Application.ScreenUpdating = False
    Sheets("Cover").Select
'        ActiveSheet.Unprotect Password:="1"
            Range("B2").Select
               ActiveCell.Formula = "='Publish'!" & "J42"
            Range("C2").Select
                ActiveCell.Formula = "='Publish'!" & "J43"
        ActiveWorkbook.Save
        Application.ScreenUpdating = True
'        ActiveSheet.Protect Password:="1"
    ActiveWorkbook.Save
    Sheets("Cover").Select
    Application.ScreenUpdating = True
    MsgBox "Update Complete"
        Exit Sub
ErrorHandler:
    MsgBox "คุณยังไม่ได้เปิดไฟล์ที่จะแก้ไขขึ้นมา กรุณาเปิดไฟล์นั้นก่อน"
End Sub


Re: ต้องการแก้ไขสูตรข้ามไฟล์ด้วย VBA

Posted: Sun Oct 06, 2024 8:52 am
by snasui
:D การทำเช่นนั้นมีประเด็นที่จะต้องพิจารณาประกอบเพิ่มเติม เช่น
  1. ผู้ใช้เปิดไฟล์ Excel อื่น ๆ อยู่ก่อนแล้วหรือไม่ หากมี โปรแกรมจะทราบได้อย่างไรว่าต้องทำงานกับไฟล์ไหน
    1. ถ้าผู้ใช้เปิดไฟล์ที่จะแก้ไขเป็นลำดับที่สอง สามารถใช้ Workbooks(2)
    2. ถ้าผู้ใช้เปิดไฟล์ที่จะแก้ไขเป็นลำดับสุดท้าย สามารถใช้ Workbooks(Workbooks.count)
  2. หากต้องการหลีกเลี่ยงปัญหาตามข้อ 1 จะให้ผู้ใช้เปิดไฟล์ขึ้นมาขณะรันโปรแกรมหรือไม่
  3. ฯลฯ
ตัวอย่างนี้สมมุติว่าผู้ใช้เปิดไฟล์ที่จะแก้ไขเป็นลำดับที่สอง

Code: Select all

'Other code
On Error GoTo ErrorHandler
Workbooks(2).Activate
Application.ScreenUpdating = False
'Other code
ตัวอย่างนี้สมมุติว่าผู้ใช้เปิดไฟล์ที่จะแก้ไขเป็นลำดับสุดท้าย

Code: Select all

'Other code
On Error GoTo ErrorHandler
Workbooks(Workbooks.Count).Activate
Application.ScreenUpdating = False
'Other code

Re: ต้องการแก้ไขสูตรข้ามไฟล์ด้วย VBA

Posted: Sun Oct 06, 2024 10:14 pm
by tigerwit
ขอบคุณครับ
ได้แนวทางแล้วครับ