如何使用包含某些公式的Excel VBA定义命名范围

时间:2019-01-08 17:56:46

标签: excel vba

我需要定义一个包含公式的命名范围,但是每次都会出错。错误包括对象要求,类型不匹配等。 有谁可以帮助我吗?

基本上是一个诸如NAME1之类的命名范围,它引用:

=INDEX(LFSLookup!$AC$3:$AC$2000,MATCH("NAME"&LFSSPA!$C$25,LFSLookup!$Z$3:$Z$2000,0))

我尝试了以下代码,但是没有用。

 Set IMAGE1Range = "=INDEX(LFSLookup!$AC$3:$AC$2000,MATCH(" & "NAME" & ThisWorkbook.Worksheets("sheet1").Range("C25").Value & ",LFSLookup!$Z$3:$Z$2000,0))"
    IMAGE1 = "IMAGE1111"
    ThisWorkbook.Names.Add Name:=IMAGE1, RefersTo:=IMAGE1Range

1 个答案:

答案 0 :(得分:1)

您已经关闭。您无法Set字符串变量,而只需要在字符串中双引号加倍以在结果中产生一个双引号即可。

Option Explicit

Sub DoTheNameThing()
    Dim IMAGE1Range As String
    Dim IMAGE1 As String

    IMAGE1Range = "=INDEX(LFSLookup!$AC$3:$AC$2000,MATCH(""NAME""&Sheet1!$C$25,LFSLookup!$Z$3:$Z$2000,0))"
    IMAGE1 = "IMAGE1111"

    ThisWorkbook.Names.Add Name:=IMAGE1, RefersTo:=IMAGE1Range
End Sub