如果某行为空,则删除Excel中的列

时间:2016-01-19 16:06:46

标签: vb.net excel

这让我很困惑,因为每次我为每个循环运行一次,并让它删除该列时,它会抛出循环结束,最终导致缺少列。

即。如果第1列和第2列都没问题,但是第3列没有,则删除3,这会导致跳过4,因为4成为新的3.因此脚本直接转到5。

我尝试为每个执行一个并将需要删除的每个列保存到列表中,然后将每个列保存到列和删除中,但我遇到了同样的问题。删除列后,所有列号都会更改。

有什么想法吗?

            For Each del In delRng.Cells

            currentcol = ColumnIndexToColumnLetter(del.Column)

            If finalsheet.Range(currentcol & "3").Value = Nothing Then


                delCols.Add(del.Column)

else

                trimmer = finalsheet.Range(currentcol & "1").Value
                trimmer = trimmer.Substring(0, trimmer.IndexOf(" -"))
                finalsheet.Range(currentcol & "1").Value = trimmer

            End If
        Next



        For Each delMe As Long In delCols

            With finalsheet
                .Columns(delMe).delete()
            End With

        Next

1 个答案:

答案 0 :(得分:0)

我的第二个删除循环的解决方案。它奏效了!

@Tag