【发布时间】:2011-07-29 13:10:04
【问题描述】:
Sub main()
Dim count As Integer
Dim i As Integer
count = Range("Q" & Rows.count).End(xlUp).Row
MsgBox count
For i = 2 To count
If Cells(i, "Q").Value = 2 Then
Sheets(1).Rows(i).EntireRow.Delete
End If
Next i
End Sub
为什么代码不能立即运行?当我在 excel 中执行上述 VBA 代码时,它会删除一些行,然后退出并显示以下消息:
run time error 13
这是什么意思?有时我会收到这样的信息:
type mismatch
在上面的 VBA 代码中,我想删除 Q 列值为 2 但它不起作用的行。请告诉我错误在哪里?
让我告诉你发生了什么。该代码正在运行,但它正在删除一些行并因运行时错误 13 而中止。当我打开我的 EXCEL 文件以查看 Q 列时,我观察到 Q 列的某些行有#REF!。
我认为这可能是原因,但我该如何弥补呢?如何使我的代码正常工作?我有一个 Q 列,其中包含 1,2 个值。 Q列有2的行必须删除,我是说整行。
【问题讨论】:
-
我无法重现该错误。当程序停止进入您的问题时,您能否编辑
i的值? -
你的测试数据最后一行的Q列有2吗?