【问题标题】:Error '1004'- Unable to Get Sum Property of the worksheet function Class with defined range variable错误“1004”- 无法获取具有定义范围变量的工作表函数类的 Sum 属性
【发布时间】:2018-03-01 17:30:27
【问题描述】:

不知道为什么我在某些工作表而不是其他工作表上收到错误。任何帮助将不胜感激。

出现错误的代码行:

    If Rng2.Value = 0 Or Rng2.Value = "" Or Rng2.Offset(0, 3).Value = "Define" Or WorksheetFunction.Sum(Rng2.EntireRow) = Rng2.Value _
        And Rng2.Offset(0, 3).Value <> "" Then

代码是这个循环的一部分:

For Each Rng2 In WorkRng2
    If Rng2.Value = 0 Or Rng2.Value = "" Or Rng2.Offset(0, 3).Value = "Define" Or Application.WorksheetFunction.Sum(Rng2.EntireRow) = Rng2.Value _
        And Rng2.Offset(0, 3).Value <> "" Then
        Rng2.Value = Rng2.Offset(-1, 0).Value
    End If
Next

Rng2 不是一个定义的范围,它是一个设定的范围变量。 WorkRng2 是一个设定的范围和一个定义的变量

【问题讨论】:

  • 试试Rows(Rng2.Row)而不是Rng2.EntireRow
  • 你有错误值吗?
  • 如何声明Rng2?做WorksheetFunction.Sum(rng2.entireRow) 为我工作,做Dim rng2 as Range // set rng2 = Sheets("Sheet1").Range("A1")。既然您说它适用于某些工作表,而不适用于其他工作表,我认为您可能没有使用它所在的工作表声明 rng2?看看我是怎么做到的Sheets("Sheet1").Range(...)?你应该确保同样声明你的Rng2
  • 我找到了,这是一个值错误,但现在仍然确定是文本导致它的原因...
  • @BruceWayne rng2 只是我用于循环的单元格范围。它是一个我已声明但未设置的公共变量。

标签: excel loops vba


【解决方案1】:

对于那些感兴趣的人,这段代码可以正常工作。我收到一个错误,因为我在总和范围内有一个 #value 错误。

【讨论】:

    猜你喜欢
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多