2016-03-22 2 views
1

Я использую этот VBScript, чтобы удалить столбец A в Excel:удалить столбец в Excel

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?

ответ

0

Ничего не удалено, потому что книга открывается в переменную wy, но вы пытаетесь удалить столбец из книги в переменной objWorkbook. Который вы не инициализировали.

Вы удаляете другой столбец, указав другой столбец вместо A:A. Помните, что удаление столбца уменьшает индекс всех столбцов справа от удаленного столбца (B становится A, C становится B и т. Д.), Поэтому я предлагаю удалить их в обратном порядке.

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

Как я могу удалить несколько пример столбца Е и G также – nnnnmmm

+0

очень хороший совет спасибо – nnnnmmm

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 
+0

Как я могу удалить несколько пример столбца Е и G также @ Сёрену Holten Хансен – nnnnmmm

+0

@nnnnmmm Вы бы сделали это так: 'wy.Worksheets (" Sheet1 "). Range (" E: G "). EntireColumn.Delete' –

+0

Это приведет к удалению столбцов E-G, а не только столбцов E и G. –