1

Activesheet从删除空白单元格后如何重新计算最后一行,Activesheet以便我将获得一个新的 lastRow 变量作为我的最大限制?我的数据来自网络查询。

例子:

  1. 数据来源:http ://en.wikipedia.org/wiki/Polar_bear
  2. 导入后的行数:1360
  3. 删除空白单元格后的行数:650

但是ActiveSheet没有刷新,lastRow 没有更新到 650,我希望这些更新

4

1 回答 1

1

由于这是为 Excel 编写 VBA 时的常见要求,因此您可能希望编写一个可以在其他项目中重用的函数。这是一个例子:

Function get_end_row(ByVal column_with_data As Long) As Long
Dim last_row As Long

last_row = ThisWorkbook.ActiveSheet.Rows.Count


get_end_row = ThisWorkbook.ActiveSheet.Cells(last_row, column_with_data).End(xlUp).Row
''Note: in the line of code above you can replace xlUp with its hexidecimal value -> &HFFFFEFBE
''This will ensure the function works in other versions of Excel    

End Function

下面是如何调用函数的示例:

Sub my_routine()
Dim endRow As Long

''The 1 being passed in the argument below is the first column number that your data is in
endRow = get_end_row(1)

Msgbox endRow

End Sub

在您的情况下,请确保在删除行后调用 get_end_row() 函数。

于 2013-03-02T17:40:05.370 回答