我终于找到了为什么我的代码崩溃了。我将此设置为我的个人宏工作簿的一部分,所以当我打开默认的Book1时,我可以运行它。但问题是,由于它正在从PMW运行宏,因此“Sheet.Copy After:= ThisWorkbook.Sheets(1)”崩溃了。
如何让从PMW运行的以下代码将工作表复制到默认的Book1?
以下原始代码;
Sub GetSheets()
Application.AutoRecover.Enabled = False
LInput:
PL = Application.InputBox("Threshold Report Path", "", "C:\Users\")
Path = PL
Filename = Dir(Path & "*.csv")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
答案 0 :(得分:0)
ThisWorkbook
指的是带宏的工作簿。
您可以按名称引用它:
Sheet.Copy After:=Workbooks("Foo").Sheets(1)
答案 1 :(得分:0)
我认为你误解了个人宏观工作簿的目的;它不应该自动运行任何东西。它不是模板。它是存储您经常使用的宏的地方,因此您可以将宏保存在一个位置,而不是将宏复制到不同的工作簿中。
我认为您想要的是一个包含模板工作表的个人模板,因此每次创建新文档时都不需要复制任何内容。
创建工作簿,手动复制工作表,并将其另存为模板。避免在模板中自动运行代码。
有关详情,请参阅以下链接。
您尝试使用的内容:
Office.com: Create and save all your macros in a single workbook
Office.com: Create and save all your macros in a single workbook
你应该使用什么:
Office.com: Save a workbook as a template
Makeuseof: How to Quickly Create a Custom Excel Template to Save Time