Excel 公式表名称组合dosen';行不通
所以我想用vba给单元格添加一个公式,但公式中有sheetname,我如何解决这个问题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
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&“)