我希望用户通过InputBox对话框输入最后一个填充的单元格编号。
numRows = InputBox("Enter number of rows in the BOM: ", "Number of Rows")
问题是当对话框出现在屏幕上时,用户无法向下滚动以查看最后一行。很难找到动态填充行的数量,因为有些单元格被填充,有些则没有。
谢谢。
编辑: 我正在使用Excel 2007
答案 0 :(得分:2)
我建议您在不询问用户的情况下以编程方式找到最后填充的行。这里
http://www.mrexcel.com/td0058.html
是针对这个问题的一些不同的解决方案(也处理一些单元格被填充而一些单元格没有填充的情况。)
答案 1 :(得分:1)
虽然这已被关闭,但我会将这些评论作为答案添加,而不是作为评论,考虑到此响应的长度和格式化的需要。该链接确实正确地指出您选择的SpecialCells方法可能有问题,我在下面添加了一个修复程序。另外,我添加的代码将查看xl2007中的实际行数,链接(2002年回写)目前修复为65536行,因为这是此时Excel中唯一存在的行号
可以像这样应用LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
以确保将usedrange正确地重置到最后一个单元格
ActiveSheet.UsedRange
LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
使用底部的行数
LastRowColA = Range("A65536").End(xlUp).Row
以满足所有excel版本中的行(xl07和xl10拥有1.048百万行)
LastRowColA = Cells(Rows.Count,"A").End(xlUp).Row
使用“查找”
LastRow = Cells.Find("*",SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row
如果工作表为空(即没有要修改的值),这将导致错误输出
Dim rng1 As Range
Set rng1 = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not rng1 Is Nothing Then
LastRow = rng1.Row
Else
'sheet is blank
End I