Excel 在公式中插入变量
我试图在公式中插入一个变量,我将在表中插入该变量。该公式应该执行另一个表中的sum乘积。我通常只会调用表名,但问题是这将在不同的表上运行不同的时间,因此它实际上永远不会是相同的表名。 我用变量“PrevSh”替换了表名 下面的公式是我宏中的公式。这给了我很多问题。它给了我应用程序定义或对象定义的错误 ActiveCell.FormulaR1C1=“=IF(A7)”,SUMPRODUCT(“[”&PrevSh&“]!$D$4:$D$485=A7])*(“[”&PrevSh&“]!$E$4:$E$485]),”Excel 在公式中插入变量,excel,vba,variables,excel-formula,Excel,Vba,Variables,Excel Formula,我试图在公式中插入一个变量,我将在表中插入该变量。该公式应该执行另一个表中的sum乘积。我通常只会调用表名,但问题是这将在不同的表上运行不同的时间,因此它实际上永远不会是相同的表名。 我用变量“PrevSh”替换了表名 下面的公式是我宏中的公式。这给了我很多问题。它给了我应用程序定义或对象定义的错误 ActiveCell.FormulaR1C1=“=IF(A7)”,SUMPRODUCT(“[”&PrevSh&“]!$D$4:$D$485=A7])*(“[”&PrevSh&“]!$E$4:$E$4
Dim sh As工作表
将表名设置为字符串
将表格设置为ListObject
像字符串一样变暗
设置sh=ActiveSheet
TableName=ActiveSheet.Previous.Name&“\u Spider”
PrevSh=ActiveSheet.Previous.Name
Sheets.Add.Name=(TableName)
范围(“A3”)。选择
ActiveCell.FormulaR1C1=“材料”
范围(“B3”)。选择
ActiveCell.FormulaR1C1=“总计”
范围(“C3”)。选择
ActiveCell.FormulaR1C1=“液化天然气数量”
范围(“D3”)。选择
ActiveCell.FormulaR1C1=“材料说明”
范围(“E3”)。选择
ActiveCell.FormulaR1C1=“原材料长度”
范围(“F3”)。选择
ActiveCell.FormulaR1C1=“碎片”
范围(“A3:f4”)。选择
ActiveSheet.ListObjects.Add(xlSrcRange,Range($A$3:$F$4)),xlYes.Name=_
表名
范围(TableName&“[TOTAL]”。选择
ActiveCell.FormulaR1C1=“=IF(A7)”,SUMPRODUCT(“[”&PrevSh&“]!$D$4:$D$485=A7])*(“[”&PrevSh&“]!$E$4:$E$485]),”
您的公式有几处错误
ActiveCell.Formula = "=IF(A7<>"""",SUMPRODUCT((" & PrevSh & "!$D$4:$D$485=A7)*(" & PrevSh & "!$E$4:$E$485)),"""")"
ActiveCell.Formula=“=IF(A7)”,SUMPRODUCT(“&PrevSh&”!$D$4:$D$485=A7)*(“&PrevSh&”!$E$4:$E$485)),“”)
如果您对如何使用@Sorceri建议的Chr(34)ascii值感到好奇,请尝试以下方法:
ActiveCell.Formula = "=IF(A7<>" & Chr(34) & Chr(34) & ",SUMPRODUCT((" & PrevSh & "!$D$4:$D$485=A7)*(" & PrevSh & "!$E$4:$E$485))," & Chr(34) & Chr(34) & ")"
ActiveCell.Formula=“=IF(A7)&Chr(34)&Chr(34)&SUMPRODUCT(“&PrevSh&”!$D$4:$D$485=A7)*(“&PrevSh&”!$E$4:$E$485)),“&Chr(34)&Chr(34)&Chr(34)&
无论哪种方式,单元格中的结果都是这样的(替换您的工作表名称,我使用sheet1进行了测试):
=IF(A7“”,SUMPRODUCT((Sheet1!$D$4:$D$485=A7)*(Sheet1!$E$4:$E$485)),“”)
在内部双引号上加上双引号。或者只使用chr(34)作为引号。。。。。
ActiveCell.Formula = "=IF(A7<>" & Chr(34) & Chr(34) & ",SUMPRODUCT((" & PrevSh & "!$D$4:$D$485=A7)*(" & PrevSh & "!$E$4:$E$485))," & Chr(34) & Chr(34) & ")"
=IF(A7<>"",SUMPRODUCT((Sheet1!$D$4:$D$485=A7)*(Sheet1!$E$4:$E$485)),"")