如何为此代码行声明和分配对象?

时间:2019-05-01 19:28:52

标签: excel vba

我是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

1 个答案:

答案 0 :(得分:3)

UnionRange对象一起使用。假设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...