【问题标题】:vba to write formula with dynamic cell referencevba用动态单元格引用编写公式
【发布时间】:2017-08-31 23:48:55
【问题描述】:
=BDP(F3& " cusip", "security des")

大家好,

我正在尝试编写一个宏,它将上述精确公式(唯一的区别是 F3 参考单元格)插入到我当前的活动单元格中。下面是实际的 vba 代码。

我只需要下面的"F3" 单元格来引用每次运行宏时由 Excel/vba 确定的变量单元格。

我已经有了让 vba/Excel 确定单元格的代码。假设这个变量单元格设置为CName。所以CName 包含我想使用的单元格——无论是 F3、D2 还是其他。

ActiveCell.Formula = "=BDP(F3&"" cusip"", ""security des"")"

有人可以帮忙吗?谢谢!

【问题讨论】:

    标签: vba formula


    【解决方案1】:

    如果您愿意,可以将Cname 设为动态变量:

    CName = Range("F3").Address
    ActiveCell.Formula = "=BDP(" & CName & Chr(34) & " cusip" & Chr(34) & ", " & Chr(34) & "security des" & Chr(34) & ")"
    

    【讨论】:

      【解决方案2】:

      如果 CName 是您要在其中包含公式的单元格的地址,请尝试以下操作:

      ActiveCell.Formula = "=BDP(" & CName & ""& cusip"", ""security des"")"
      

      【讨论】:

      • 是的,CName 是我想在公式中包含的单元格,它是动态的,具体取决于数据。所以 CName 可能是 F2、D2 或其他取决于数据。我走的是与您上面完全相同的道路,但由于某种原因它不起作用,但我也没有从 vba 编辑器收到错误。任何想法?另外,您将 CName 调暗为什么?谢谢。
      • Tehscript 的答案更完整,您将拥有 CHR(34) ,无需两个引号。将 CName 调暗为字符串,因为 .address 返回字符串。
      • 是的,感谢 Tehscript,但他的脚本将 F3 硬编码到公式中。尽管他确实让我直观地了解我的代码在哪里显示没有错误但只是没有运行。谢谢你们!
      【解决方案3】:

      感谢大家的反馈和支持!在休息一下并查看您的想法后,我想通了!因此,通过插入以下内容就可以了!我想 .address(,) 是绝对必要的。

      & CName.Address(False, False) &

      再次感谢!

      【讨论】:

      • 不要忘记为帮助点赞并选择答案。
      猜你喜欢
      • 2018-12-19
      • 1970-01-01
      • 2017-03-06
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多