Excel lastcol=范围(“a7”)。结束(xlRight)。列

Excel lastcol=范围(“a7”)。结束(xlRight)。列,excel,vba,Excel,Vba,我希望找到包含数据的范围中的最后一列(范围的宽度按月变化)。我使用的公式抛出应用程序定义或对象定义的错误。代码如下: lastcol = Worksheets("Current Month").Range("H7").End(xlRight).Column 我很困惑,因为下面的代码是有效的: lastrow = Worksheets("Current Month").Range("B7").End(xlDown).Row 要查找第一行中的最后一列,请使用以下代码 dim lastcolumn

我希望找到包含数据的范围中的最后一列(范围的宽度按月变化)。我使用的公式抛出应用程序定义或对象定义的错误。代码如下:

lastcol = Worksheets("Current Month").Range("H7").End(xlRight).Column
我很困惑,因为下面的代码是有效的:

lastrow = Worksheets("Current Month").Range("B7").End(xlDown).Row

要查找第一行中的最后一列,请使用以下代码

dim lastcolumn as long 

lastcolumn = Worksheets("Current Month").Cells(1, Columns.Count).End(xlToLeft).Column

使用
xlToRight
而不是
xlRight
。这些不是相同的常数。
End
函数不理解xlRight常量。

范围错误,您选择了一个单元格,即H7,Newjenn的答案是正确的,因为xlToRight会从您的单元格向右找到下一个非空单元格。您必须从行的最右边开始,搜索最左边的非空列,才能找到最后一个非空列。还有更多列包含更右边的数据,因此我不想在enitre工作表中找到最后一列。A.S.H发现了这个问题,我是个笨蛋,用xlRight而不是xltoRightCheers,我对此视而不见@RosscoPicotrain这些常量的名称非常混乱。。。干杯:)