赋值为常数不允许
我得到这个错误在我的macros之一,代码是
Dim rdel1 As Range Dim rdel2 As Range Set rdel1 = Sheets("Sheet1").Range(A1:B100) For Each rdel2 In rdel1.Cells If rdel2.Value = "No item selected" Then rdel2.Offset(1, 0).EntireRow.Delete rdel2.EntireRow.Delete rdel2.Address = rdel2.Offset(-1, 0) "Error in this line" End If Next rdel2
我想通过offset(-1,0)
来改变redel2的地址。 我知道它不看正确的方式来写它,但我无法得到正确的语法来改变它。 有人可以帮助! 请!
执行之后
rdel2.EntireRow.Delete
rdel2
将是“没有”,所以任何操纵它的尝试都将失败。
如果它不是 Nothing
,并且在一行中引用一个单元格,那么
Set rdel2 = rdel2.Offset(-1, 0)
会工作。
目前还不清楚你想要达到什么目标,但这可能会让你开始
Sub Demo() Dim rdel1 As Range Dim rdel2 As Range Set rdel1 = Sheets("Sheet1").Range("A1:A100") Dim rw As Long For rw = rdel1.Rows.Count To 1 Step -1 Set rdel2 = rdel1.Cells(rw, 1) If rdel2.Value = "No item selected" Then rdel2.Offset(1, 0).EntireRow.Delete End If Next End Sub
rdel2
是一个范围, .Offset(-1,0)
返回一个范围,如果你想改变rdel2
,只要做rdel2 = rdel2.Offset(-1, 0)
。
虽然,在你的情况下, For Each
循环将更新rdel2
所以这行将是无用的(除非你没有显示所有的代码,实际上有更多的问题行和Next rdel2
语句之间)