VBScript для удаления строк в Excel на основе пустых значений столбцов - PullRequest
0 голосов
/ 20 мая 2018

Я учусь на VBScript.Я пытаюсь удалить строки, если значение ячейки конкретного столбца пусто в Excel.Это фрагмент, который я написал.

set mysheet1 = myxl.ActiveWorkbook.Worksheets(1) 
Row1=mysheet1.UsedRange.Rows.Count
For  i= 1 to Row1
  If len(mysheet1.cells(i,1).value) = 0 then
          mysheet1.Cells(i, 1).EntireRow.Delete
  End If
Next

К сожалению, строки не удаляются.В чем может быть проблема?Пожалуйста помоги.Заранее спасибо.

1 Ответ

0 голосов
/ 21 мая 2018

Перейти назад

Заменить:

For  i= 1 to Row1

на:

For  i= Row1 to 1 Step -1

РЕДАКТИРОВАТЬ # 1:

Причина, по которой при удалении строк мы всегда идем снизу вверх, заключается в том, что если мы пошли другим путем (естественный путь) , то индексация цикла испортится.

Скажем, мы идем сверху вниз и только что рассмотрели и удалили строку № 5;мы хотели бы проверить строку № 6 далее, но удаление изменило ее на строку № 5.Это приводит к тому, что мы пропускаем исследование старой строки № 6 полностью!.

Когда мы идем снизу вверх, удаление строк не влияет на цикл.

...