【问题标题】:VBA error code 1004 using a SUMIF formula使用 SUMIF 公式的 VBA 错误代码 1004
【发布时间】:2021-03-26 18:15:12
【问题描述】:

我需要你的帮助。 我正在用 VBA 编写一小段代码,以便在 RPA 过程中使用。 我已经在 Excel 中测试了我的公式并且它可以工作,但是每次当我尝试从 VBA 运行它时,它都会以错误代码 1004 崩溃并告诉我问题在代码中 .Range("C29").Formula = " =SUMIF(Sheet1!$A$19:$A$1000;$B29;Sheet1!$G$19:$G$1000)".

将公式更改为更简单的公式,效果很好。 还有其他人知道这个问题吗?

Sub FillDown()

    Dim strFormulas '(1 To 3) As Variant 

    With ThisWorkbook.Sheets("MainSheet")


        .Range("C29").Formula = "=SUMIF(Sheet1!$A$19:$A$1000;$B29;Sheet1!$G$19:$G$1000)"
 
        .Range("C29:C501").FillDown
    End With


End Sub

【问题讨论】:

  • 这已经被问了很多次了,我太累了,无法寻找最好的重复答案。用 VBA 编写公式时,需要用美式英语指定公式。将; 替换为,

标签: vba


【解决方案1】:

检查您的 SUMIF 公式。它包含错误。您的想法是"=SUMIF(Sheet1!$A$19:$A$1000, $B29, Sheet1!$G$19:$G$1000)"??

【讨论】:

  • 本地设置使用“;”代替 ”,”。在我的情况下偏离路线。
【解决方案2】:
Sub FillDown2()
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("MainSheet")
     
    ws.Range("C29").FormulaLocal = "=SUMIF(Sheet1!$A$19:$A$1000;$B29;Sheet1!$G$19:$G$1000)"
    ws.Range("C29:C501").FillDown
End Sub

所以问题是基于我的工作表的设置。 通过添加公式本地,至少我现在不再有错误了,到下一个问题 xD

【讨论】:

  • 如果这对您有用,请记住将其标记为已接受的答案(应该在左侧某处打勾)。
  • 请注意,使用FormulaLocal,代码将不再适用于不使用相同语言设置的任何人。
猜你喜欢
  • 2015-08-15
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多