2015-08-24 8 views
1

Я пытаюсь написать VBScript, чтобы удалить содержимое ячеек в столбцах F, S и T из строки 1492 в 17910. Я знаю только, как удалить целую строку с помощью .Rows(X).EntireRow.Delete. Моя идея состояла в том, чтобы просто перебирать строки и удалять данные в ячейках, находящихся в этом диапазоне, но я не знаю, как удалить содержимое в одной конкретной ячейке.Удаление ячеек из определенных столбцов с использованием определенного диапазона

ответ

2

Вы можете использовать функцию Range(), чтобы указать три диапазона и вызвать метод Clear для каждого диапазона, чтобы удалить все значения/форматирование/etc.

Предполагая, что переменная приложения Excel называется objExcel и ваш диапазон находится на вашем активном листе, можно использовать следующее:

With objExcel.ActiveSheet 
    .Range("F1492:F17910").Clear 
    .Range("S1492:S17910").Clear 
    .Range("T1492:T17910").Clear 
End With 

Поскольку Range() может принимать несколько диапазонов, вы можете даже сделать это в одном звоните:

objExcel.ActiveSheet.Range("F1492:F17910,S1492:S17910,T1492:T17910").Clear 

Если вы просто хотите, чтобы очистить содержимое, но сохранить форматирование, используйте ClearContents вместо этого.

+0

С точки зрения времени работы, было бы быстрее сделать это, как вы это сделали или просто пропустили этот диапазон и очистили всю строку? –

+1

Это будет значительно быстрее, чем при использовании любого типа петли. Если вы спрашиваете о скорости между очисткой _just_ столбцов 'F',' S' и 'T' против очистки всей строки, это может быть компромисс. – Bond

Смежные вопросы