我想在Excel文档的所有工作表中使用VBS,它将执行以下操作:
我尝试使用此代码实现此功能,但它不起作用
With excelObject1
.Application.DisplayAlerts = False
for each x in excelObject1.WorkSheets
x.Rows(1).AutoFilter 1, "type 1"
x.Range("A1:E41").Copy
.WorkSheets.Add
.ActiveWorksheet.Range("A1").PasteSpecial -4122
.ActiveWorkbook.SaveAs home_directory+x.Name + ".csv", 23
Next
.Quit
.Application.DisplayAlerts = True
End With
它给出错误(对象不支持此属性或方法:' ActiveWorksheet')如果我删除ActiveWorksheet前面的点,则它会出错(变量未定义' ActiveWorksheet& #39) 我不知道如何在每个x"中创建新的工作表。 也许这不是我做的方式吗? 我尝试用VBS做到这一点,但是如果有人能够通过VBA告诉我这样做会很棒。我的Excel是2013年。
答案 0 :(得分:0)
Worksheet
个对象没有ActiveWorksheet
属性,但Application
对象具有属性ActiveSheet
。 ActiveWorkbook
属性也是如此。我还强烈建议您使用&
代替+
进行字符串连接。
改变这个:
.ActiveWorksheet.Range("A1").PasteSpecial -4122
.ActiveWorkbook.SaveAs home_directory+x.Name + ".csv", 23
进入这两个:
excelObject1.ActiveSheet.Range("A1").PasteSpecial -4122
excelObject1.ActiveWorkbook.SaveAs home_directory & x.Name & ".csv", 23
或者这个:
.Application.ActiveSheet.Range("A1").PasteSpecial -4122
.Application.ActiveWorkbook.SaveAs home_directory & x.Name & ".csv", 23