Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 公式表名称组合dosen';行不通_Excel_Vba_Excel Formula - Fatal编程技术网

Excel 公式表名称组合dosen';行不通

Excel 公式表名称组合dosen';行不通,excel,vba,excel-formula,Excel,Vba,Excel Formula,所以我想用vba给单元格添加一个公式,但公式中有sheetname,我如何解决这个问题 Sub MatchaFormel(A As String, B As String) Dim j As Integer j = 1 Worksheets("Sammanställning").Range(B & 3).Activate Do ActiveCell.Offset(0, 1).Activate ActiveCell.Formula = "=ANTAL.OMF('Com

所以我想用vba给单元格添加一个公式,但公式中有sheetname,我如何解决这个问题

Sub MatchaFormel(A As String, B As String)
Dim j As Integer
j = 1
 Worksheets("Sammanställning").Range(B & 3).Activate
 Do
    ActiveCell.Offset(0, 1).Activate

    ActiveCell.Formula = "=ANTAL.OMF('Component List'!$" & A & "$2:$" & A & "S$3001;E3)"
    j = j + 1
    ActiveCell.Offset(1, -1).Activate
 Loop Until ActiveCell.Value = ""

End Sub

所以我的问题是代码的“组件列表”部分。ANTAL.OMF是英文的COUNTIFS

如果您不想指定工作表名称,只需将其删除:

'Component List'!
每当您有一个字符串要进行故障排除时,只需显示该字符串本身,以便更容易地看到问题

例如:(用于故障排除)

如果您的VBA是:

ActiveCell.Formula = "=ANTAL.OMF('Component List'!$" & A & "$2:$" & A & "S$3001;E3)"
然后在前面添加一行,将字符串复制并粘贴到
Debug.Print
语句中。例如:

Debug.Print "=ANTAL.OMF('Component List'!$" & A & "$2:$" & A & "S$3001;E3)"
Stop
运行代码,当代码在
停止时中断时,点击CTRL+G(对于即时窗口),查看它给出了什么公式。如有必要,将该公式复制并粘贴到工作表中,查看其是否按原样工作

如果不是,你的问题应该很清楚


看起来您对单引号/双引号有些混淆。要在公式中包含双引号(
),请使用双引号集(

也许您想要的行是:

ActiveCell.Formula = "=ANTAL.OMF("$A" & "$2:$" & A & "S$3001;E3)"

.Formula将不会添加非EN US公式。有关详细信息,请参阅。需要是带逗号分隔符的CountIf或.FormulaLocal才能使用区域。这已解决此问题。感谢ActiveCell.FormulaLocal=“=ANTAL.OMF('Component List'!$”&a&“$2:$”&a&“S$3001;”&B&j+2&“)