EXCEL如何使用VBA匯總當前路徑下的工作簿的相應的工作表?
EXCEL如何使用VBA匯總當前路徑下的工作簿的相應的工作表?
一個論壇上的會員有如下的要求:如圖需要把當前路徑中的財務、采購、工廠、計劃、人士等工作簿的“出勤明細”工作表的記錄復制匯總在“加班匯總表”工作簿中的“加班原因匯總”工作表中,并需要取出各部門的名稱,希望批量使用VBA完成?很久沒有玩VBA了,今晚手癢,寫了這樣一個程序:
EXCEL如何使用VBA匯總當前路徑下的工作簿的相應的工作表?
Sub test()Dim WB As Workbook, WS As Worksheet, FN$, Rng As Range, k As LongApplication.ScreenUpdating = FalseFN = Dir(ThisWorkbook.Path & "\*.xls*")Application.AutomationSecurity = msoAutomationSecurityForceDisableDo While FN <> ""If FN <> ThisWorkbook.Name ThenSet WB = GetObject(ThisWorkbook.Path & "" & FN)With WBFor Each WS In .WorksheetsIf WS.Name Like "*出勤明細*" ThenWith WSi = .Cells(Rows.Count, 2).End(xlUp).Row.Range("A2:D" & i).CopySet Rng = ThisWorkbook.Worksheets("加班原因匯總").Cells(ThisWorkbook.Worksheets("加班原因匯總").Rows.Count, 2).End(xlUp).Offset(1, 0)With Rng.PasteSpecial xlPasteFormats.PasteSpecial xlPasteAllEnd WithThisWorkbook.Worksheets("加班原因匯總").Cells(ThisWorkbook.Worksheets("加班原因匯總").Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(i – 1, 1) = Left(WB.Name, Len(WB.Name) – 4)Application.CutCopyMode = FalseEnd WithEnd IfNext WSEnd WithWB.Close FalseEnd IfFN = DirLoopApplication.AutomationSecurity = msoAutomationSecurityByUIEnd Sub
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。