Excel VBA 使用rows.delete有时出现类型不匹配
发布网友
发布时间:2024-10-17 17:24
我来回答
共3个回答
热心网友
时间:2天前
你放到什么事件中???截图看下
热心网友
时间:2天前
虽然显示在rows.delete上,但是,实际上是你的for循环条件,在第i行的数据类型不匹配导致的。
调试器在循环中无法显示到循环的头,所以留在了循环开始的第一行。。你试试在For下插入MSGBOX,就会看到出错提示留在了MSGBOX上
热心网友
时间:2天前
i = Sheets("sheet1").Range("c65536").End(xlUp).Row
j = 2
Do While j <= i
If Cells(j, 3) <> "Requirment" And Cells(j, 3) <> "" Then
Rows(j).Delete
Else
j = j + 1
End If
Loop
这样修改一下……
你原来的 删除行之后 再用for next 循环 就不是 新的 i 值 就不是 下一行了……而应该是跳过 一行了……所以 不能完全处理掉 你需要的哦……无论是否可以正常运行 都不可能处理成符合你要求的哦……
热心网友
时间:2天前
你放到什么事件中???截图看下
热心网友
时间:2天前
虽然显示在rows.delete上,但是,实际上是你的for循环条件,在第i行的数据类型不匹配导致的。
调试器在循环中无法显示到循环的头,所以留在了循环开始的第一行。。你试试在For下插入MSGBOX,就会看到出错提示留在了MSGBOX上
热心网友
时间:2天前
i = Sheets("sheet1").Range("c65536").End(xlUp).Row
j = 2
Do While j <= i
If Cells(j, 3) <> "Requirment" And Cells(j, 3) <> "" Then
Rows(j).Delete
Else
j = j + 1
End If
Loop
这样修改一下……
你原来的 删除行之后 再用for next 循环 就不是 新的 i 值 就不是 下一行了……而应该是跳过 一行了……所以 不能完全处理掉 你需要的哦……无论是否可以正常运行 都不可能处理成符合你要求的哦……