我是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
不幸的是,它没有删除行。可能是什么问题?请帮忙。提前谢谢。
答案 0 :(得分:2)
向后退步
替换:
For i= 1 to Row1
使用:
For i= Row1 to 1 Step -1
修改#1:强>
当我们删除行时,我们总是从下到上是因为如果我们采用另一种方式(自然方式),循环索引会搞砸。
假设我们从上到下,只是检查并删除第5行;我们想检查下一行#6,但删除将其更改为第5行。这导致我们完全没有检查旧的#6行。
当我们从下到上时,删除行不会影响循环。