我是VBA的新手,我很难理解在代码中声明对象的概念...
以下代码是工作表更改事件的一部分,当用户尝试选择在我的工作簿的sheet1上建立的三个“ FILLABLE”名称范围中的任何一个时,它将引导用户进入“ F6”。 我使用“联合”功能从多个工作的if语句合并了这段代码,现在每当我运行宏时,都会收到运行时错误“ 424”。
Set ws = ThisWorkbook.Sheets("Inventory in-out")
If target.Row < 14 And Intersect(target, Union(FILLABLE_TOP_MER, FILLABLE_TOP_REG, FILLABLE_TOP_NOMSG)) Is Nothing Then
Range("F6").Select
答案 0 :(得分:3)
Union
与Range
对象一起使用。假设FILLABLE_TOP_MER
是包含String
名称的Name
,那么您需要为这些名称获取Range
:
Dim FillableTopMerRange As Range
Set FillableTopMerRange = ThisWorkbook.Names(FILLABLE_TOP_MER).RefersToRange
Dim FillableTopRegRange As Range
Set FillableTopRegRange = ThisWorkbook.Names(FILLABLE_TOP_REG).RefersToRange
'...
If ... And Intersect(Target, Union(FillableTopMerRange, FillableTopRegRange, ...)) Is Nothing Then...