学习Excel技术,关注微信公众号:
excelperfect
在上一篇文章中,建议加速检索已使用单元格区域最后一行方法之一是使用缓存和Application对象的AfterCalculate事件。
下面是演示代码:
'为缓存创建模块级数组
Dim UsedRows(1 To 1000, 1 To 2) AsVariant
Public Function GetUsedRows3(theRngAs Range)
'对于Excel 2007及以后的版本,存储并获取已使用的单元格行数
Dim strBookSheet As String
Dim j As Long
Dim nFilled As Long
Dim nRows As Long
'为此工作簿和工作表创建标签
strBookSheet = Application.Caller.Parent.Parent.Name & "_"& _
Application.Caller.Parent.Name
If Val(Application.Version) >= 12 Then
'查看缓存
For j = LBound(UsedRows) ToUBound(UsedRows)
If Len(UsedRows(j, 1)) > 0 Then
nFilled = nFilled + 1
If UsedRows(j, 1) =strBookSheet Then
'找到了
GetUsedRows3 = UsedRows(j,2)
Exit Function
End If
Else
'如果第一行是空行则退出循环
Exit For
End If
Next j
End If
'找到已使用的行数
nRows = theRng.Parent.UsedRange.Rows.Count
If Val(Application.Version) >= 12 Then
'在缓存中存储
nFilled = nFilled + 1
If nFilled |
|