删除Excel中的列

时间:2016-03-22 08:39:03

标签: excel vbscript

我正在使用此VBScript删除Excel中的A列:

Set objExcel = CreateObject("Excel.Application")
Set wy = xl.Workbooks.Open("D:\XX\Historical_data_extract.xlsx")

objExcel.Visible = True
objWorkbook.Worksheets("Sheet1").Range("A:A").Delete
objWorkbook.Save
objWorkbook..Close

脚本只是打开文件但没有删除任何内容 为什么会这样?

另外如何删除多列A和J?

2 个答案:

答案 0 :(得分:1)

尝试将代码更改为

Set objexcel = CreateObject("Excel.Application")
Set wy = objexcel.Workbooks.Open("D:\XX\Historical_data_extract.xlsx")    
objexcel.Visible = True
wy.Worksheets("Sheet1").Range("A:A").EntireColumn.Delete
wy.Save
wy.Close

您的代码试图删除其他工作簿中的范围,而不是您已打开的工作簿。

列E和G可以通过

删除
wy.Worksheets("Sheet1").Range("G:G").EntireColumn.Delete
wy.Worksheets("Sheet1").Range("E:E").EntireColumn.Delete 
wy.Worksheets("Sheet1").Range("A:A").EntireColumn.Delete  

答案 1 :(得分:0)

没有删除任何内容,因为工作簿已打开到变量wy,但您尝试从变量objWorkbook中的工作簿中删除该列。你没有初始化。

您可以通过指定其他列而不是A:A来删除其他列。请注意,删除列会减少已删除列的所有列的索引(B变为AC变为B,依此类推),所以我会建议以相反的顺序删除它们。

wy.Worksheets("Sheet1").Range("J:J").Delete
wy.Worksheets("Sheet1").Range("A:A").Delete