【发布时间】: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只是我用于循环的单元格范围。它是一个我已声明但未设置的公共变量。