0

我是 VBA 新手。我正在尝试编写一个脚本来清理实验中的一些数据。我不断收到“需要对象”的错误消息,它突出显示 pold。有谁知道为什么?

至于脚本,我正在尝试查看一列参与者编号并绘制出每个参与者的范围。每个参与者大约有 30 行,我想将其定义为数组中的值。

Sub Cleanthismofoup() 
Dim pranges(1 To 50) As Long 
Dim pbegin As Range
Dim pend As Range
Dim pold As Integer
Dim pnew As Integer
Dim pcell As Range
Dim pcounter As Long
Dim i As Long

Set pcell = Range("A1:A1")
Set pbegin = Range("A2:A2")
Set pold = Range("B2:B2").Value
pcounter = 0

'for every item, store value in pnew
' move down one line. Check pnew = pold
' if it is, do again. else create new range

For i = 1 To rngl
pcell = pcell.Offset(-1, 0)
pnew = pcell.Cells.Value
If pnnew <> pold Then pcell = pend
If pcell = pend Then
counter = counter + 1
pranges(counter) = pbegin
counter = counter + 1
pranges(counter) = pend
pbegin = pcell.Offset(-1, 0)
Else: pold = pnew
End If

i = i + 1
Next

结束子

4

1 回答 1

4

该错误是因为您使用的Set关键字用于分配对对象的引用。由于 RHS 的输出Set pold = Range("B2:B2").Value是整数,因此 vba 会给您一个错误。要解决它,只需删除Set关键字。但是我也注意到你rng1for循环中使用而没有初始化rng1变量,在这种情况下你的for循环将永远不会执行。您可能还想纠正这一点。

于 2012-07-06T05:29:19.543 回答