【问题标题】:passing formula from vba to cell将公式从 vba 传递到单元格
【发布时间】:2021-12-26 03:50:36
【问题描述】:

我正在尝试使用 Excel VBA 在 Excel 单元格中传递公式:

Mt_1 = "trade-508-cd"

bpTargetRange.FormulaR1C1 = "=IF(ISNUMBER(SEARCH(""*""&Mt_1&""*"",RC[-1])),""1"",""0"")"

当运行上面的单元格时,有公式:

=IF(ISNUMBER(SEARCH("*"&@Mt_1&"*",B2)),"1","0")

但应该是:

=IF(ISNUMBER(SEARCH("*trade-508-cd*",B2)),"1","0")

【问题讨论】:

  • 仔细计算引号,并在连接时在与号周围添加一些空格;有一个原因当你看它时整条线显示为绿色......
  • Mt_1 是 VBA 变量吗?
  • @Chronocidal 当我给出:""*""" & Mt_1 & """*"",它给出 1004 错误代码,""*""""" & Mt_1 & """""*"" 返回:"*""trade-508-cd""*"
  • @FaneDuru 是的,因为它在生产中是动态的。
  • 然后,测试我在回答中建议的方式...

标签: excel vba excel-formula excel-r1c1-notation


【解决方案1】:

请尝试下一个代码:

   Dim Mt_1 As String: Mt_1 = "trade-508-cd"
   bpTargetRange.Formula2R1C1= "=IF(ISNUMBER(SEARCH(""*" & Mt_1 & "*"",B2)),""1"",""0"")"

我的回答假设 Mt_1 是一个 VBA 变量...

【讨论】:

  • 为什么在Mt_1 & 之后有 3 个?还有空间?
  • @selet 什么 3?双引号?如果是,VBA 需要将必要的一个和另一个加倍以用于字符串开始...它不是按您的需要工作吗?
  • 是的双引号,我认为这是一个错字,所以我尝试了:""*" & Mt_1 & "*"",它成功了。我也试试原版的
  • 尝试时会出现 1004 错误
  • 请尝试更新后的代码。并按照建议使用Formula2R1C1,如果它插入“@”字符。
猜你喜欢
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多