Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在personal.xlsb中存储用于从关闭的WB复制工作簿的代码_Excel_Vba - Fatal编程技术网

Excel 在personal.xlsb中存储用于从关闭的WB复制工作簿的代码

Excel 在personal.xlsb中存储用于从关闭的WB复制工作簿的代码,excel,vba,Excel,Vba,我想用以下代码从一个关闭的工作簿中复制4个工作表,不过我想将此代码存储在personal.xlsb中,以便在我打开的每个新excel WB实例中都可以使用。我的问题从这里开始,就像我从personal.xlsb运行代码一样,它返回一个错误 运行时错误“1004”:Sheets类的复制方法失败 调试器将突出显示这一行: wbSource.Worksheets(数组(1,2,3,4)).Copy-Before:=wbstarget.Sheets(“Sheet1”) 有人能帮我解决这个问题吗 Sub

我想用以下代码从一个关闭的工作簿中复制4个工作表,不过我想将此代码存储在personal.xlsb中,以便在我打开的每个新excel WB实例中都可以使用。我的问题从这里开始,就像我从personal.xlsb运行代码一样,它返回一个错误

运行时错误“1004”:Sheets类的复制方法失败

调试器将突出显示这一行:
wbSource.Worksheets(数组(1,2,3,4)).Copy-Before:=wbstarget.Sheets(“Sheet1”)

有人能帮我解决这个问题吗

Sub CopySegSheets()

Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim Sht As Worksheet

Application.ScreenUpdating = False

Set wbTarget = ThisWorkbook
Set wbSource = Workbooks.Open("C:\PATH\sourcewb.xlsx")
wbSource.Worksheets(Array(1, 2, 3, 4)).Copy Before:=wbTarget.Sheets("Sheet1")
wbSource.Close

Application.ScreenUpdating = True

End Sub

Set-wbTarget=ActiveWorkbook
谢谢BigBen,不幸的是,此更改没有解决问题。ActiveWorkbook是否有名为“Sheet1”的工作表?相同的错误消息?可能不给工作表命名
Before:=wbTarget.Worksheets(1)
@BigBen,是的,它确实有,实际上它是一个全新的工作簿,只有一张名为“Sheet1”的工作表。