【发布时间】:2015-09-17 06:44:27
【问题描述】:
首先,我是 VBA 编程的初学者。也就是说,这是交易:我有一个代码可以找到并突出显示所有出现的多个关键字(如果你想查看我的代码,它是here)。在这段代码的末尾有以下If 语句:
If Not rng Is Nothing Then
rng.EntireRow.Interior.ColorIndex = 3
End If
现在我想隐藏未突出显示的行。经过大量研究(参考:1、2、3、4、5。)关于如何隐藏行我有了这个想法:
If Not rng Is Nothing Then
rng.EntireRow.Interior.ColorIndex=3
Else
rng.EntireRow.Hidden = True
End if
但它根本不起作用。沮丧,因为我认为这确实是一个好主意,所以我创建了一个新的工作簿并尝试创建一个简单的宏来实现我的目标,然后我将它添加到上面描述的搜索和突出显示宏中。现在它看起来像这样:
Sub Test()
Dim i As Integer
Dim ws As Worksheet
Set ws = Tabelle1
For i = 1 To 10
If ws.Rows(i).Interior.ColorIndex = 3 Then
MsgBox "Super"
Else
ws.Rows(i).Hidden = True
End If
Next i
End Sub
这个宏有一个问题,当我运行它时,一旦它发现一个未突出显示的行,它将隐藏所有其他独立的行,无论它们是否突出显示。有人可以解释一下我的代码有什么问题导致宏跑掉了。如果有人还可以指出如何使用我之前想法中的Else 语句使其运行,那就太好了!
【问题讨论】:
标签: vba excel for-loop excel-2010