【发布时间】:2022-01-14 23:12:33
【问题描述】:
我对在 excel 中使用宏还很陌生。我在工作表 1 的单元格 A1 中创建了一个下拉列表。根据此单元格的值,我需要我的宏在表 2 中查找并选择与下拉列表中选择的值相对应的单元格(这是一个唯一的单元格)。我想用它作为参考单元格来复制一个范围。
关于如何做到这一点的任何建议?
提前致谢!
【问题讨论】:
-
您是否尝试过录制宏并从那里开始?
我对在 excel 中使用宏还很陌生。我在工作表 1 的单元格 A1 中创建了一个下拉列表。根据此单元格的值,我需要我的宏在表 2 中查找并选择与下拉列表中选择的值相对应的单元格(这是一个唯一的单元格)。我想用它作为参考单元格来复制一个范围。
关于如何做到这一点的任何建议?
提前致谢!
【问题讨论】:
Range.Find 可以为您完成。
Sheet2.Cells.Find(What:=DropdownValue).Select
但要小心在一行中执行此操作。如果 Find 方法找不到任何匹配项,这将引发错误,因为您不能在 Nothing 上执行 Select。
在单独的行中这样做更安全,例如:
Dim rFind As Range
Set rFind = Sheet2.Cells.Find(What:=DropdownValue)
If Not rFind Is Nothing Then rFind.Select
为了可靠性和完整性,您应该包含Find 的其他参数,以确保该方法使用您期望的匹配规则。最关键的是 LookIn、LookAt 和 MatchCase。
Set rFind = Sheet2.Cells.Find( _
What:=DropdownValue, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
MatchCase:=True _
)
【讨论】:
Sheet2,然后才能从其中激活Select。尝试在添加 Select 之前添加 Sheet2.Activate。