-1
我對excel VBA宏很新,所以我的問題應該很容易解決。從一個工作簿複製工作表到其他
我試圖打開一個文件夾中的所有文件,編輯這些文件一點點,並將它們複製到現有的工作簿。不幸的是,發生運行時錯誤'424':Object required。
聚焦的行:
ActiveSheets.Copy後:=工作簿( 「宏sheets.xlsm」)表(Sheets.Count)
它看起來像 「宏sheets.xlsm」,其實不然。存在,但這是工作簿的名稱,我從中運行此宏。
我已經經歷了許多論壇,嘗試了很多代碼,但仍然沒有找到解決方案。
請問有人能幫我嗎?
謝謝了很多,
月
Sub nahranidat()
Dim YourFile As Variant
Dim YourFolderPath As Variant
YourFolderPath = "K:\MMR\2015\BO\macro files connection\"
ChDir YourFolderPath
YourFile = Dir(YourFolderPath & "*.*")
Do While YourFile <> ""
Workbooks.Open Filename:=YourFolderPath & YourFile
YourFile = Dir
Set myObject = ActiveWindow
If Activeworkbook.Worksheets.Count = 2 Then
Sheets(1).Select
ActiveSheet.Name = Left(Activeworkbook.Name, InStr(Activeworkbook.Name, ".") - 1) & "_1_month"
Sheets(2).Select
ActiveSheet.Name = Left(Activeworkbook.Name, InStr(Activeworkbook.Name, ".") - 1) & "_by_month"
Activeworkbook.Sheets.Select
ActiveSheets.Copy After:=Workbooks("Macro sheets.xlsm").Sheets(Sheets.Count)
Else
Sheets(1).Select
ActiveSheet.Name = Left(Activeworkbook.Name, InStr(Activeworkbook.Name, ".") - 1)
Activeworkbook.Sheets.Select
ActiveSheets.Copy After:=Workbooks("Macro sheets.xlsm").Sheets(Sheets.Count)
End If
Application.CutCopyMode = False
myObject.Close , SaveChanges:=False
Loop
End Sub
你好戴夫,非常感謝你的回答。現在,該宏適用於其他部分之後的部分 - 所以對於具有一個工作表的工作簿。你有什麼想法,如何解決兩個選定的工作表的問題? – 2014-08-29 07:41:05
'如果Activeworkbook.Worksheets.Count = 2然後 表(1)。選擇 ActiveSheet.Name =左(Activeworkbook.Name,InStr函數(Activeworkbook.Name, 「」) - 1)& 「_1_month」 表(2)。選擇 ActiveSheet.Name =左( 「」 Activeworkbook.Name,InStr函數(Activeworkbook.Name,) - 1)& 「_by_month」 Activeworkbook.Sheets.Select 「這裏的問題是: ActiveSheets.Copy After:= Workbooks(「Macro sheets sheets.xlsm」)。Sheets(Sheets.Count) 'from here works: Else' – 2014-08-29 07:49:14
這是對Activesheets的參考。您可以選擇Activeworkbook.Sheets.Copy – Dave 2014-08-29 08:04:02