首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用excel vba宏在getpivotdata公式中插入变量值

如何使用excel vba宏在getpivotdata公式中插入变量值
EN

Stack Overflow用户
提问于 2017-12-19 19:42:26
回答 1查看 1.3K关注 0票数 3

因此,我已经了解到,枢轴表是棘手的,字符串变量语法也是如此,在VBA中使用引号也是如此。我正在尝试(失败)使用这三种方法!

我正试图从一个非常大/复杂的枢轴表中收集一段数据,以获取大量的作业编号。我希望在A1中选择一个作业编号,并让支点表公式使用所选作业号自动更新,以返回一个数字结果。

我目前有两个问题: 1)获取“getpivotdata”公式的引号中的作业号的语法不起作用;2)在执行代码时,它正在丢弃作业号中的零。

下面列出了我的代码,当我执行它时,我希望看到这个公式在A2中填充:

代码语言:javascript
运行
复制
=GETPIVOTDATA("Part Number",' Parts Status '!$A$8,"CHAR_FIELD3","11-008","MATERIAL STATUS MASTER","Avail")

但取而代之的是:

代码语言:javascript
运行
复制
=GETPIVOTDATA("Part Number",' Parts Status '!$A$8,"CHAR_FIELD3",11-8,"MATERIAL STATUS MASTER","Avail")

我的密码在这里

代码语言:javascript
运行
复制
Sub Macro1()

Dim jobnumber As String

jobnumber = Worksheets("Macros test").Cells(1, "A").Value

Sheets("Macros test").Select
    Range("A2").Select
    ActiveCell.FormulaR1C1 = _
        "=GETPIVOTDATA(""Part Number"",' Parts Status '!R8C1,""CHAR_FIELD3""," & jobnumber & ",""MATERIAL STATUS MASTER"",""Avail"")"
EN

回答 1

Stack Overflow用户

发布于 2017-12-19 20:07:36

我一直使用Chr()函数来处理VB中的引号。双引号是Chr(34),单引号是Chr(39)。您所遇到的问题是,虽然jobnumber被定义为字符串,但它周围没有双引号。结果是Excel删除了公式11-008的前导零,Excel将其视为11减去8。添加双引号(Chr(34))解决了这个问题。

我总是把这些长串分解成更小的部分,这样我就可以看到我输入的内容了。下面的代码使用一个小的私有函数来构建枢轴字符串。

代码语言:javascript
运行
复制
Public Sub PivotTest()

    Dim jobnumber As String

    jobnumber = Worksheets("Macros test").Cells(1, "A").Value

    Sheets("Macros test").Select
    Range("A2").Select
    ActiveCell.FormulaR1C1 = BuildPivotString(jobnumber)

End Sub

Private Function BuildPivotString(ByRef jobNum As Variant) As String
    Dim retVal As String

    retVal = "=GETPIVOTDATA("
    retVal = retVal & Chr(34) & "Part Number" & Chr(34)
    retVal = retVal & ",' Parts Status '!R8C1,"
    retVal = retVal & Chr(34) & "CHAR_FIELD3" & Chr(34) & ","
    retVal = retVal & Chr(34) & jobNum & Chr(34) & ","
    retVal = retVal & Chr(34) & "MATERIAL STATUS MASTER" & Chr(34) & ","
    retVal = retVal & Chr(34) & "Avail" & Chr(34) & ")"

    BuildPivotString = retVal
End Function
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47894130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档