如何查找包含空白的LastColumn

时间:2019-07-08 23:16:18

标签: excel vba

我试图找到其中包含数据的最后一列。我的某些列之间可能包含空白列。

我的代码存在的问题是它会继续返回到第13列作为最后使用的列,而实际上最后使用的列是19。我希望我的代码从L8开始计数。

如何修复我的代码以在两者之间包含空白列?

LastCol = ws.Cells.Find(What:="*", _
            After:=ws.Range("L8"), _
            LookAt:=xlPart, _
            LookIn:=xlFormulas, _
            SearchOrder:=xlByColumns, _
            SearchDirection:=xlNext, _
            MatchCase:=False).Column

屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:2)

Range.Find方法返回一个Range对象,该对象表示找到该信息的第一个单元格。因此,如果第一个非空单元格位于L13中,则此公式将始终返回该值。您可以选择向后搜索(从L1开始),但是有一种更简单,更直接的方法。只需使用:

LastCol = ws.Cells(8, ws.Columns.Count).End(xlToLeft).Column

答案 1 :(得分:0)

A1 开始并向后搜索:

Sub sjkdfhsgf()
    Set ws = ActiveSheet
    Set terminus = ws.Cells.Find(What:="*", _
                After:=ws.Range("A1"), _
                LookAt:=xlPart, _
                LookIn:=xlFormulas, _
                SearchOrder:=xlByColumns, _
                SearchDirection:=xlPrevious, _
                MatchCase:=False)
                Lastcol = terminus.Column
    MsgBox Lastcol
End Sub