【问题标题】:Insert formula using VBA Dynamically使用 VBA 动态插入公式
【发布时间】:2020-08-12 09:30:30
【问题描述】:

下面的 VBA 代码没有插入动态公式的代码。

sh.Range("bj" & 2 * i + 1).FormulaLocal = "=VALUE(TRIM(LEFT(E" & 2 * i + 1 & ", FIND("" - "",  E " & 
      2 * i + 1 & ") - 1)))"""

【问题讨论】:

  • 删除尾随引号和E之后的空格。
  • 不,它不起作用
  • FormulaLocal????你最好检查一下这是否是你真正想要的。
  • 是的。但是如果您的 Excel 没有本地化为英文,您还需要将FormulaLocal 更改为Formula,即good idea anyway
  • 先把公式组装成一个字符串,然后检查这个字符串是否正确。

标签: excel vba


【解决方案1】:

请尝试:

sh.Range("bj" & 2 * i + 1).FormulaLocal = "=VALUE(TRIM(LEFT(E" & 2 * i + 1 & ", FIND("" - "",  E" & 2 * i + 1 & ") - 1)))"

但是您在上述公式中是否有一个函数可以根据您的语言设置进行本地化?

【讨论】:

  • @Math 查询:VBA代码写公式吗?我的意思是,它看起来是正确的吗?在您的代码中,添加了一个额外的"...
  • 我只是试了一下,因为公式失败了
  • @Math 查询:但是,如果公式 result 出错,它可能会失败...请尝试:Debug.Print "=VALUE(TRIM(LEFT(E" & 2 * i + 1 & ", FIND("" - "", E " & 2 * i + 1 & ") - 1)))"。它会在即时窗口中返回您想要的吗?如果是,您必须检查目标单元格是否包含您认为它包含的值...
  • 它的已解决,立即窗口在 E 之后显示一个空格,它已被删除并且工作正常。
  • 我已经更正了上面的代码。我也观察到了... :)
猜你喜欢
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
相关资源
最近更新 更多