Formula Sheetname组合使用起来了

时间:2018-03-09 10:21:07

标签: excel vba excel-formula

所以我想用vba为细胞添加公式,但我在公式中有工作表名称,我该如何解决这个问题呢?

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

1 个答案:

答案 0 :(得分:1)

如果您想要指定工作表名称,则只需删除它:

'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

运行代码,当它在Stop处断开时,按CTRL + G(对于立即窗口)以查看它给你的公式。如有必要,请复制&将该公式粘贴到工作表中,看它是否按原样运行。

如果没有,你的问题应该清楚。

您的单/双引号看起来有些混乱。要在公式中包含"双引号,请使用它们的双重集("")。

也许你想要的行是:

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