gpt4 book ai didi

vba - 删除特定列中具有特定值的行

转载 作者:行者123 更新时间:2023-12-02 18:53:04 49 4
gpt4 key购买 nike

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!.

我认为这可能是原因,但我该如何弥补呢?如何使我的代码正常工作?我有一个包含 1,2 个值的 Q 列。 Q 列中有 2 的行必须删除,我的意思是整行。

最佳答案

如果第 #10 行 == 2,则删除第 #10 行;在循环的下一次迭代中,您检查行#11,该行现在具有行#12 的值,因为它在删除后上移,这意味着您将跳过查看紧邻已删除行下方的任何行。

您可能想向后循环;

Sub main()
Dim count As Integer
Dim i As Integer
'//assuming all filled rows from Q2 downwards?
count = Range("Q2").End(xlDown).Row

For i = count To 2 Step -1
If Cells(i, "Q").Value = 2 Then
Sheets(1).Rows(i).EntireRow.Delete
End If
Next i
End Sub

关于vba - 删除特定列中具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873611/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com