将第一个工作表从CSV文件复制到启用宏的工作簿

时间:2016-11-01 18:27:52

标签: excel-vba vba excel

我有多个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.FullNamewbSource.FullName时,我看到了正确的文件,所以我不明白什么是不匹配的。请注意,我希望第2行保持通用,以便无论我打开哪个CSV文件它都能正常工作。

1 个答案:

答案 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)语法无效。