我有一个我更新的字段,然后输入基准信息。 但是,屏幕闪烁。 如何阻止它闪烁?
代码如下:
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheet3.Range("CJ91") = Benchmark2.Text
Dim myList()
Dim xCount As Long
Dim rng As Range
Dim xCell As Range
With Sheets("Choosing Funds").Range("ES2:ES81")
.AutoFilter 1, "<>"
On Error Resume Next
Set rng = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
If Not rng Is Nothing Then
ReDim myList(1 To rng.Cells.Count)
For Each xCell In rng
xCount = xCount + 1
myList(xCount) = xCell.Text
Next xCell
End If
.AutoFilter
End With
OffshoreFund_List.List = myList
Application.ScreenUpdating = True
Application.EnableEvents = True
答案 0 :(得分:0)
亚当 - 我看到你已经多次发布过这个问题了。现在您已经使用实际代码发布了这个内容,为什么屏幕闪烁更为明显。
当您使用.AutoFilter时,Excel实际上必须在源电子表格上添加/修改现有的AutoFilter。这极有可能是闪烁的原因。
在这种情况下,您使用AutoFilter的原因似乎是因为您在源表中有一个值列表,但您只想将值打印到OffshoreFund_List,其中列E中的值不等于1
如果是这种情况,那么您应该做的是将您想要使用的整个范围复制到数组中。现在,然后为您的结果创建第二个数组,最终要打印到OffshoreFund_List。然后,遍历第一个数组,对于第五列中包含1的任何值,您可以复制到目标数组,忽略其他所有数组。然后打印结果。
现在,您的程序仍然需要与电子表格进行交互(抓取源数据并打印结果),但这不会导致屏幕闪烁。
让我知道这是否有效。