我有多个CSV文件,我想压缩成一个Excel工作簿,每个CSV一个工作表。手动,我会打开目标工作簿(Target.xlsx),打开CSV(Source.csv),右键单击CSV文件中的唯一选项卡,选择Move or Copy
,将To book:
字段更改为Target.xlsx,将Before sheet:
更改为Sheet3,选中Create a copy
,然后关闭CSV文件。这是我写的代码:
Set wbTarget = ThisWorkbook
Set wbSource = ActiveWorkbook
wbSource.Sheets(1).Copy Before:=Workbooks(wbTarget).Sheets("Sheet3") 'Type Mismatch
wbSource.Close
wbTarget.Save
执行后,我在第3行遇到“类型不匹配”错误。当我打印wbTarget.FullName
和wbSource.FullName
时,我看到了正确的文件,所以我不明白什么是不匹配的。请注意,我希望第2行保持通用,以便无论我打开哪个CSV文件它都能正常工作。
答案 0 :(得分:1)
更改
wbSource.Sheets(1).Copy Before:=Workbooks(wbTarget).Sheets("Sheet3")
到
wbSource.Sheets(1).Copy Before:=wbTarget.Sheets("Sheet3")
Workbooks
对象不能将Workbook
对象作为索引,只能使用String或Integer,因此Workbooks(wbTarget)
语法无效。