【问题标题】:Excel VBA Formula Inside a String字符串内的Excel VBA公式
【发布时间】:2016-10-06 14:07:59
【问题描述】:

试图将公式放入字符串中但无法正常工作。有人可以帮我把它变成一个字符串吗?我知道我需要在某些地方做""&"",我只是不知道在哪里......

Dim form As String
form = =IFERROR(GETPIVOTDATA("[Measures].[Sum of Amount]",Pivot!$A$3,"[qAllData].[Year]","[qAllData].[Year].&[2.016E3]","[qAllData].[Month Name]","[qAllData].[Month Name].&["&$B9&"]","[qAllData].[PRODUCT_CODE]","[qAllData].[PRODUCT_CODE].&["&C$3&"]","[qAllData].[Product Name]","[qAllData].[Product Name].&["&C$4&"]")-C8-C7-C6-C5,0)

【问题讨论】:

  • 您希望它作为一个包含引用的字符串,所以它看起来像 "=IFERROR(GETPIVOTDATA(...,Pivot!$A$3,..." 还是您希望 Pivot!$A$3 实际上是该单元格中的文本?
  • 您希望公式在电子表格中是什么样的?
  • 在工作表本身上写下所需的公式以确保其有效,并在此处发布工作公式,并说明您希望哪些值与变量交换。整个公式必须用引号括起来,引号之外的变量与& 连接。
  • 先去掉两个连续的= =
  • @JohnColeman 这就是我的意思,应该是= "=...

标签: vba excel macros excel-formula


【解决方案1】:

如果您的表格是电子表格中的逐字记录,但您想用 VBA 插入它,那么只需:

Dim form As String
form = "=IFERROR(GETPIVOTDATA(""[Measures].[Sum of Amount]"",Pivot!$A$3,""[qAllData].[Year]"",""[qAllData].[Year].&[2.016E3]"",""[qAllData].[Month Name]"",""[qAllData].[Month Name].&[""&$B9&""]"",""[qAllData].[PRODUCT_CODE]"",""[qAllData].[PRODUCT_CODE].&[""&C$3&""]"",""[qAllData].[Product Name]"",""[qAllData].[Product Name].&[""&C$4&""]"")-C8-C7-C6-C5,0)"

这只是将每个" 替换为"" 并将整个内容用引号括起来。 VBA 接受它作为一个有效的公式,虽然我不确定这是你真正想要的。

【讨论】:

    【解决方案2】:

    如果它是一个有效的公式,并且您只想将它​​作为String 放在一个变量中,您需要做的就是用双引号 (") 开始和结束它,然后将所有内引号 (@987654323 @),就像这样:

    form = "=IFERROR(GETPIVOTDATA(""[Measures].[Sum of Amount]"",Pivot!$A$3,""[qAllData].[Year]"",""[qAllData].[Year].&[2.016E3]"",""[qAllData].[Month Name]"",""[qAllData].[Month Name].&[""&$B9&""]"",""[qAllData].[PRODUCT_CODE]"",""[qAllData].[PRODUCT_CODE].&[""&C$3&""]"",""[qAllData].[Product Name]"",""[qAllData].[Product Name].&[""&C$4&""]"")-C8-C7-C6-C5,0)"
    

    【讨论】:

      猜你喜欢
      • 2018-09-14
      • 2021-10-31
      • 1970-01-01
      • 2018-11-18
      • 2016-10-26
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多