เช็คsheet name ก่อนทำการรันVBA
Posted: Tue Oct 08, 2019 10:19 am
ถ้าต้องการเช็ค sheetname ก่อนจะทำการรันVBA ในแต่ละ workbook ใดๆจะต้องใช้คำสั่งอย่างไรครับ
ถ้ามีชื่อsheet Report และ Summary ให้ Run VBA ด้านล่างที่เขียนไว้
แต่ถ้า sheet นั้นๆ ไม่มีให้ปิด workbook และ run workbook ตัวถัดไป
*note
แต่ละ workbook มีจำนวนชีทไม่เท่ากันครับ
ถ้ามีชื่อsheet Report และ Summary ให้ Run VBA ด้านล่างที่เขียนไว้
แต่ถ้า sheet นั้นๆ ไม่มีให้ปิด workbook และ run workbook ตัวถัดไป
*note
แต่ละ workbook มีจำนวนชีทไม่เท่ากันครับ
Code: Select all
Sub mergefile()
Dim wball As Range, wb As Range
Dim path As String
Dim f_name As String
Dim gsd, mnth As String
Dim i As Integer
With Sheets("filename")
Set wball = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
f_name = .Range("E7").Value
path = .Range("E2").Value
End With
For Each wb In wball
Workbooks.Open Filename:= _
path & wb.Value
'ต้องการเช็คว่า workbook ที่เปิดมามีชีท Report และ Summary หรือไม่-----------
'ถ้าไม่ ให้ปิด workbookนั้นๆ และ เปิด workbook ตัวถัดไป
-------------------------------------------------------------------------------------
'Run function--------------------------
Windows(wb.Value).Activate
Sheets("Summary").Select
Range("A3:H18").Select
Selection.Copy
Windows(f_name).Activate
Sheets("Masterfile").Range("A" & Rows.Count).End(xlUp).Offset(1, 4).Select
'paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(wb.Value).Close
--------------------------------------------
Next wb
MsgBox ("DONE")
End Sub