Dim rLastCell As Range
Set rLastCell = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
MsgBox ("The last used column is: " & rLastCell.Column)
如果要查找特定行中使用的最后一列,可以使用:
Dim lColumn As Long
lColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
使用范围(不太可靠):
Dim lColumn As Long
lColumn = ws.UsedRange.Columns.Count
5 回答
有很多方法可以做到这一点 . 找到最可靠的 .
如果要查找特定行中使用的最后一列,可以使用:
使用范围(不太可靠):
如果列A中没有数据,则使用已使用的范围将无法工作 . 请参阅此处了解使用范围的另一个问题:
有关重置使用范围的信息,请参阅Here .
我知道这已经过时了,但我已经在很多方面对它进行了测试,并且它还没让我失望,除非有人能告诉我 .
行号
专栏信
列号
激活工作表后尝试使用代码:
如果仅使用
Cells.SpecialCells(xlCellTypeLastCell).Row
,则问题是除非执行"Save file"操作,否则不会更新xlCellTypeLastCell
信息 . 但是使用UsedRange
将始终实时更新信息 .我想我们可以修改@Readify's上面的
UsedRange
代码来获取最后一个使用的列,即使起始列是空白也是空白 .所以
lColumn = ws.UsedRange.Columns.Count
修改为这
lColumn = ws.UsedRange.Column + ws.UsedRange.Columns.Count - 1
总会给出可靠的结果以上行在即时窗口中产生
9
.这是可能有用的东西 . 根据包含数据的行选择整个列,在本例中我使用的是第5行: