【问题标题】:Using Variable Name in Lookup Formula VBA在查找公式 VBA 中使用变量名
【发布时间】:2021-05-28 10:28:52
【问题描述】:

这似乎很容易,因为我是 VBA 的新手。我正在尝试用同一列中以前的非空白隐藏单元格值填充过滤后的空白可见单元格。查找公式在 Excel 工作表上运行良好,但在 VBA 中将其与可变范围一起使用会在查找公式行上给出应用程序定义或对象定义错误。

nlr = Cells(Rows.Count, 9).End(xlUp).Row
With Activehseet
  Application.DisplayAlerts = False
  Range("A1:K" & nlr).AutoFilter Field:=2, Criteria1:=""
  Range("A1:K" & nlr).AutoFilter Field:=1, Criteria1:="P * Suite *"
  Range("B2:B" & nlr).SpecialCells(xlCellTypeVisible).ClearContents
  For Each c In Range("B1:B" & nlr).Offset(1, 0).SpecialCells(xlCellTypeVisible)
      n = c.Row - 1
      c.Formula = "=LOOKUP(2,1/($B$2:B&n&<>""),$B$2:B&n&)"

下面我也试过了,还是不行

    c.Formula = "=LOOKUP(2,1/($B$2:B " & n & "<>""),$B$2:B" & n & ")"

请帮我解决这个问题

编辑:我已经尝试过这种方法,但也没有用

c.Formula = "=LOOKUP(2,1/($B$2:B " & n & "<>""""),$B$2:B" & n & ")"

【问题讨论】:

  • 用户提问后已经删除了自己的账号?
  • 我投票结束这个问题,因为 OP 在提出问题后删除了该帐户。我们永远不会知道解决方案是否曾经解决过 OPs 问题。在这上面花任何时间都是浪费时间。

标签: excel vba


【解决方案1】:

这是将一个字符串连接到另一个字符串的正确方法:

c.Formula = "=LOOKUP(2,1/($B$2:B " & n & "<>""),$B$2:B" & n & ")"

但是,这部分有问题:

... & n & "<>""), ...

这会将 one 双引号放入文本中。我猜你希望它在解析时看起来像 &lt;&gt;"",这意味着该行应该是这样的:

... & n & "<>""""), ...

为什么?因为在要放置 one 双引号的字符串中,您需要放置一个双引号:"" = "(在完成的字符串中)。因此双双引号变为:"""" = ""

这里是更正后的原始代码:

c.Formula = "=LOOKUP(2,1/($B$2:B " & n & "<>""""),$B$2:B" & n & ")"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多