-2

我已经搜索了这个网站,似乎所有的答案都指向查找单元格的行号。

我正在尝试设置一个范围,以便它从列A1中数据的末尾开始A。此电子表格将每周更新,因此每周都会添加数据。

我想知道什么代码可以工作,以便我可以找到行号并以某种方式将其与我的范围代码联系起来,使其相等"A" + lastrownumber?或者是否有代码可以同时提供列号和行号?如果我错过了正确答案的链接,一个简单的链接也可以,我为这篇文章和你的时间道歉。

这是我的代码:

Sub NamedRange()

Dim Rng1 As Range
Dim newDate As Integer
Dim NumberOfRows As Range


Dim MyRange As Range
Dim lastRow2 As Range


lastRow2 = Range("A65536").End(xlUp).Row
'lastRow2 = LastRow

Set Rng1 = Sheets("Sheet1").Range(lastRow2)
ActiveWorkbook.Names.Add Name:="MyRange", RefersTo:=Rng1


Dim date1 As String
Dim dat As Date
Dim newPrice As Double


Set RgSales = Range("MyRange")
4

4 回答 4

9

这将返回与 A 列中最后填充的单元格对应的范围对象

Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious)

如果您想要行号,请使用以下内容:

Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious).row
于 2012-07-12T14:23:36.160 回答
2

这将给出给定列中的最后一行

= Cells(Activesheet.Rows.Count, ColumnNumber).End(xlUp).Row(根据@Gimp 固定)

然后,您有一个可用于添加数据的参考 - 例如,如果您想查看“A”列,那么这将是第 1 列。将其输入到函数中,然后您可以使用Cells(NumberReturnedFromFunction,ColumnNumber)该单元格来寻址该单元格,然后添加.Address如果你想要A1地址的样式

于 2012-07-12T14:17:13.137 回答
0

如果数据中存在差距,我会避免使用 xlDown ,所以类似下面的内容就可以了。在即时窗口中尝试:

Activesheet.range("A1:A" & Activesheet.Cells(Excel.Rows.Count, 1).End(Excel.xlUp).Row).select
于 2012-07-12T17:05:01.667 回答
0

尝试使用这样的东西:

Activesheet.Cells(Activesheet.Rows.Count, "A").End(xlUp).Row

您可以将 Activesheet 替换为对工作表索引 # likeSheets(1)或工作表名称的引用Sheets("Sheet1")

通过使用,Rows.Count它将检查最大行数是多少,并在所有版本的 Excel 中兼容。

最后,您可以在您的范围参考中使用它,如下所示:

Msgbox Sheets(1).Range("A" & Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).row).value

但我可能会将其重写为

With Sheets(1)
    Msgbox .Range("A" & .Cells(.Rows.Count, "A").End(xlUp).row).value
End With
于 2012-07-12T14:47:59.653 回答