我试图找到其中包含数据的最后一列。我的某些列之间可能包含空白列。
我的代码存在的问题是它会继续返回到第13列作为最后使用的列,而实际上最后使用的列是19。我希望我的代码从L8开始计数。
如何修复我的代码以在两者之间包含空白列?
LastCol = ws.Cells.Find(What:="*", _
After:=ws.Range("L8"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False).Column
屏幕截图
答案 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