我搜索了这个网站,看起来所有答案都只是指向找到单元格的行号。
我正在尝试设置一个范围,以便它从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")
答案 0 :(得分:8)
这将返回与A列中最后填充的单元格对应的范围对象
Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious)
如果您需要行号,请使用以下命令:
Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious).row
答案 1 :(得分:2)
这将给出给定列中的最后一行
= Cells(Activesheet.Rows.Count, ColumnNumber).End(xlUp).Row
(根据@Gimp修正)
然后你有一个可以用来添加到数据的引用 - 例如,如果你想查看列“A”,那么这将是列号1.将其提供给函数,然后你可以使用{{1} }如果您想要Cells(NumberReturnedFromFunction,ColumnNumber)
地址样式
.Address
答案 2 :(得分:0)
尝试使用以下内容:
Activesheet.Cells(Activesheet.Rows.Count, "A").End(xlUp).Row
您可以使用对工作表索引#Sheets(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
答案 3 :(得分:0)
如果数据中存在空白,我会避免使用xlDown,因此下面的内容很好。在即时窗口中尝试:
Activesheet.range("A1:A" & Activesheet.Cells(Excel.Rows.Count, 1).End(Excel.xlUp).Row).select