Jef*_*lle 2 excel vba excel-vba
因此,当我运行这部分vba宏时,我收到一个奇怪的错误.该宏应该通过一个人和他们的信息表,并且GUI中指定的用户,其行被设置为""之后表格被排序.输入的数据被验证,因此用户不能输入不存在的值.
这是有问题的代码:
Set destPpl = Worksheets("People").Range("A2")
Do While (destPpl.value <> I1.value And destPpl.value <> "")
Set destPpl = destPpl.Offset(1, 0)
Loop
For i = 1 To 5
destPpl.value = "" 'debug error occurs here
destPpl = destPpl.Offset(0, 1)
Next i
Run Code Online (Sandbox Code Playgroud)
它将删除第一列内容,但不会遍历其余列.所有表引用都是正确的.我不知道出了什么问题.
感谢您的任何帮助
改变这个:
destPpl = destPpl.Offset(0, 1)
Run Code Online (Sandbox Code Playgroud)
对此:
Set destPpl = destPpl.Offset(0, 1)
Run Code Online (Sandbox Code Playgroud)
我的猜测是destPpl没有正确地声明为一个范围,或者你第一次通过循环就会在这一行上得到错误.
发生的事情是第一次通过循环destPpl从Range对象更改为值destPpl.Offset(0, 1).所以在第二个循环中,destPpl没有.Value限定符,因为它不再是一个范围.
destPpl的正确声明是:
Dim destPpl as Range
Run Code Online (Sandbox Code Playgroud)