【问题标题】:How to define a named range using excel vba that includes some formula如何使用包含一些公式的 excel vba 定义命名范围
【发布时间】:2019-06-03 11:09:13
【问题描述】:

我需要定义一个包含公式的命名范围,但每次都会出错。错误包括对象要求、类型不匹配等。 有没有人可以帮我解决这个问题?

基本上是一个命名范围,例如 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

【问题讨论】:

    标签: excel vba


    【解决方案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
    

    【讨论】:

    • 更新了代码。当您更改 Sheet1!C25 中的值时,IMAGE1111 名称将返回不同的结果。它正在寻找 NAMExyz,其中 xyz 是您在 C25 中输入的任何内容。
    • 是的,它有效。尝试刷新此页面 - 我可能已经编辑了 4 次代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2011-09-07
    • 2019-12-05
    • 2017-10-01
    • 2013-09-02
    • 2014-09-17
    相关资源
    最近更新 更多