繁体   English   中英

公式中的变量工作簿名称

[英]Variable Workbook Name in Formula

我正在尝试编写一个采用可变工作簿名称(之前已声明)并将其输入到将粘贴到单元格中的公式中的代码。

如果我只写工作簿,就算公式起作用了,而且工作簿路径的变量声明也可以正常工作,我只是想不出将变量放入公式代码中的格式。

'''Spreadsheet opening and variable declaration

strFileToOpen = Application.GetOpenFilename _
(Title:="Select an updated Inventory Report", _
FileFilter:="Excel Files *.xls* (*.xls*),")

If strFileToOpen = False Then

    'Displaying a message if file not choosedn in the above step
    MsgBox "No file selected.", vbExclamation, "Sorry!"

    'And existing from the procedure
    Exit Sub
Else

End If

Workbooks.Open Filename:=strFileToOpen



Set InvRpt = ActiveWorkbook

InvRptName = ActiveWorkbook.FullName

Set InvSht = InvRpt.Worksheets("ALL")

'''Formula insert

ActiveCell.Formula = "=IF(ISERROR(GETPIVOTDATA(""Sec QTY Sum"", 'InvRptName'!$A$4,""Alias"",""" & y & """)),0,GETPIVOTDATA(""Sec QTY Sum"", 'InvRptName'!$A$4,""Alias"",""" & y & """))"

最终结果将使此代码完全像这样工作,但是使用变量而不是工作簿/工作表名称:

 ActiveCell.Formula = "=IF(ISERROR(GETPIVOTDATA(""Sec QTY Sum"", '[8-14-19 AM INVENTORY.xls]Sheet2'!$A$4,""Alias"",""" & y & """)),0,GETPIVOTDATA(""Sec QTY Sum"", '[8-14-19 AM INVENTORY.xls]Sheet2'!$A$4,""Alias"",""" & y & """))"

将断点放置在遇到问题的行中总是有帮助的,然后使用“中间窗口”找出出现问题的地方。 例如;

  1. 在具有ActiveCell.Formula =的最后一行放置一个断点
  2. 运行代码
  3. 在中间窗口中,键入?"=IF(ISERROR(GETPIVOTDATA(""Sec QTY Sum"", 'InvRptName'!$A$4,""Alias"",""" & y & """)),0,GETPIVOTDATA(""Sec QTY Sum"", 'InvRptName'!$A$4,""Alias"",""" & y & """))"
  4. 注意; 指示中间窗口您要查看返回值。
  5. 如果编译正常,您应该看到结果字符串,看看它是否符合您的预期。 我猜您的结果将在您期望'[8-14-19 AM INVENTORY.xls] Sheet2' 地方包含文本'InvRptName '

要获得“ [[8-14-19 AM INVENTORY.xls] Sheet2”!$ A $ 4,请尝试使用;

?"'[" & ActiveWorkbook.Name & "]" & ActiveSheet.Name & "'!$A$4"

另一对热门提示;

  1. 使用Debug.Print "add your messages here or a variable " & InvRptName代码中Debug.Print "add your messages here or a variable " & InvRptName以输出调试消息。
  2. 使用中间寡妇在执行过程中修复变量InvRptName = "'[" & ActiveWorkbook.Name & "]" & ActiveSheet.Name & "'!$A$4"注意,我排除了? 这次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM