excel - 联合范围选择失败
问题描述
我尝试选择一个变量下的联合范围,但它失败了。
Sub filter()
'Clear prev result table
Worksheets("main").Range("A3").CurrentRegion.Delete
'Declare variable
Dim selectedRows As Range
Set selectedRows = Worksheets("contacts").Range("A1:B1")
'Get total used range in contacts database
numRows = Mid(Worksheets("contacts").UsedRange.Address, 9)
For Each cell In Worksheets("contacts").Range("B1:B" & numRows)
If cell.Value = Worksheets("main").Range("B1").Value Then
'If true, push into array called selectedRows
Set selectedRows = Application.Union(selectedRows, Worksheets("contacts").Range(cell.Address))
End If
Next
selectedRows.Select '<------ fail here
Copy Worksheets("main").Range("A3")
End Sub
宏失败并且错误消息说:选择方法或范围类失败。我的代码有什么问题?
解决方案
您收到错误消息,因为工作表“联系人”未处于活动状态。添加这一行:
Worksheets("contacts").Activate
像这样:
Sub filter()
'Clear prev result table
Worksheets("main").Range("A3").CurrentRegion.Delete
'Declare variable
Dim selectedRows As Range
Set selectedRows = Worksheets("contacts").Range("A1:B1")
'Get total used range in contacts database
numRows = Mid(Worksheets("contacts").UsedRange.Address, 9)
For Each cell In Worksheets("contacts").Range("B1:B" & numRows)
If cell.Value = Worksheets("main").Range("B1").Value Then
'If true, push into array called selectedRows
Set selectedRows = Application.Union(selectedRows, Worksheets("contacts").Range(cell.Address))
End If
Next
Worksheets("contacts").Activate
selectedRows.Select '<------ fail here
'this line below is incorrect
'Copy Worksheets("main").Range("A3")
End Sub
我建议阅读这篇文章:如何避免在 Excel VBA 中使用 Select - 它将帮助您改进代码。
推荐阅读
- javascript - 离子推送通知(背景字体)
- php - 从 db 中的行中拆分数据,然后在下拉列表中显示选中
- python - 为什么在 python 中使用占位符?
- aws-lambda - Is it mandatory to open all IPs to insert data to RDS ( MySQL ) from an AWS lambda function
- android - 如何在工具栏中隐藏/显示溢出图标
- sql-server - 使用 EntityFramework Core 调用 MSSQL StoredProcedure 并显示返回的数据——
- wordpress - 从 localhost 到 Intranet 站点,使用 XAMPP 和 wordpress
- powershell - 命令输出打印而不是在 Powershell 中捕获
- node.js - 如何在 aws api 网关中传递和访问路径参数
- java - 有没有办法不在列表视图位置使用 getRef() 来获取当前点击用户的 getKey()?