我有兴趣在我的工作簿上显示/隐藏多个范围。通常情况下,我只测试范围是否已隐藏,并将以下内容设置为true或false rng.EntireRow.Hidden
。
我想让我的项目感觉更像是一个应用程序(是的,我知道excel可能不是最适合它的地方,但是关注像这样的小细节是我的事情)。以下是我想要做的一个例子。它可以工作,尤其是在干净的工作表/工作簿上。问题是,在我尝试使用它的工作簿上,工作表上已经有大量的数据/格式/形状。这导致"跳过"在循环的平滑性。我尝试了不同的步骤,但似乎没有什么能解决它。为了看到任何动画,DoEvents
是必要的。
如果有人知道如何完成这项工作,或者如果有可能,那就太棒了。谢谢!
Sub testView()
Dim rng As Range
Dim i As Integer
With ActiveSheet
Set rng = .Range(.Cells(1, 1), .Cells(20, 1))
If rng.EntireRow.Hidden = True Then
For i = 1 To 15 Step 1
rng.EntireRow.RowHeight = i
DoEvents
Next i
Else
For i = 14 To 0 Step -1
rng.EntireRow.RowHeight = i
DoEvents
Next i
End If
End With
End Sub
答案 0 :(得分:1)
出于教学原因(主要是图表动画),我在Excel中做了很多动画。我有时使用以下子的变体:
Sub Pause(delay As Double)
Dim start As Double
start = Timer
Do While Timer < start + delay
DoEvents
Loop
End Sub
然后在主代码中,在您当前拥有Pause 0.10
之后(或代替)DoEvents
之类的内容。技术含量低,但有时会有所帮助。