我正在尝试生成一个宏,它将在一个非常大的电子表格中隐藏不需要的行,并且只显示具有相关数据的行。
Sub hiddenrows()
Dim i As Long
Dim totalRows As Long
totalRows = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Rows("10:" & totalRows).Hidden = False
For i = 10 To totalRows
If ActiveSheet.Range("B" & i).Value <> vbNullString Then
corr = i
i = i + 1
End If
If ActiveSheet.Range("C" & i).Value <> vbNullString Then
geo = i
i = i + 1
End If
If ActiveSheet.Range("D" & i).Value <> vbNullString Then
dis = i
i = i + 1
End If
While ActiveSheet.Range("E" & i).Value <> vbNullString
If ActiveSheet.Range("E" & i).Value <> vbNullString Then
act = i
act2 = i + 1
act3 = i + 2
Cells(corr, 1).EntireRow.Hidden = False
Cells(geo, 1).EntireRow.Hidden = False
Cells(dis, 1).EntireRow.Hidden = False
Cells(act, 1).EntireRow.Hidden = False
Cells(act2, 1).EntireRow.Hidden = False
Cells(act3, 1).EntireRow.Hidden = False
i = i + 3
Else
i = i - 1
End If
Wend
Next
End Sub
我想我已经把基本的代码结构搞定了,但我知道我的语法/执行很差。
让我试着更好地解释一下代码。我首先尝试计算行数并将其存储为我的“LastRow”变量。然后我想遍历所有行并将它们设置为隐藏。之后,使用更大的“For”循环,我想将特定行存储为变量“corr”、“geo”、“dis”和“act”。当“act”行中有数据时,我想将所有存储的行设置为显示。我希望以正确的方式更新我的迭代器“i”。任何帮助将不胜感激。
我已经更新了我目前正在使用的代码,但它没有像我想要的那样工作。我添加了一张图片以更好地描述我在寻找什么。基本上,如果“活动描述”列中有任何内容,我想显示与特定描述相对应的走廊、地理和学科。但是,如果活动描述中没有任何内容,则它不会显示不必要的信息。我基本上想把这个巨大的excel文件浓缩到只有你能看到的地方是有用的信息。我希望这有帮助。