【问题标题】:Formula Sheetname combo dosen't work公式表名称组合不起作用
【发布时间】:2018-03-09 20:39:50
【问题描述】:

所以我想用 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

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案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)"
    

    【讨论】:

    • .Formula 不会添加非 EN-US 公式。请参阅this 了解更多信息。需要是带有逗号分隔符的 COUNTIFS 或 .FormulaLocal 才能使用区域。
    • 这修复了它。感谢 ActiveCell.FormulaLocal = "=ANTAL.OMF('组件列表'!$" & A & "$2:$" & A & "S$3001;" & B & j + 2 & ")" '
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2016-08-17
    • 2020-08-14
    • 2021-09-28
    • 2020-01-01
    相关资源
    最近更新 更多