VBScript用于根据空列值删除excel中的行

时间:2018-05-20 20:31:08

标签: excel-vba vbscript vba excel

我是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 :(得分:2)

向后退步

替换:

For  i= 1 to Row1

使用:

For  i= Row1 to 1 Step -1

修改#1:

当我们删除行时,我们总是从下到上是因为如果我们采用另一种方式(自然方式),循环索引会搞砸。

假设我们从上到下,只是检查并删除第5行;我们想检查下一行#6,但删除将其更改为第5行。这导致我们完全没有检查旧的#6行。

当我们从下到上时,删除行不会影响循环。