+-
我如何找到包含数据的最后一列?

我已经找到了用于查找工作表中最后一个包含数据的行的方法:

ws.Range("A65536").End(xlUp).row

是否有类似的方法来查找工作表中最后一个包含数据的列?

88
投票

很多方法。最可靠的是找到。

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

如果您在A列中没有数据,则无法使用已用范围。请参见此处以了解已用范围的另一个问题:

关于重设使用范围,请参见Here。>>

15
投票

[我知道这很旧,但是我已经通过很多方式对其进行了测试,并且它还没有让我失望,除非有人可以告诉我。

2
投票

在激活工作表后尝试使用代码:

2
投票

我认为我们可以修改以上UsedRange答案中的@Readify's代码,以获取最后使用的列,即使起始列是否为空白。

0
投票

这里可能有用。基于包含数据的行选择整个列,在这种情况下,我使用的是第5行: