【发布时间】:2017-08-30 13:36:04
【问题描述】:
我有一个子程序,它首先调用另一个子程序(编辑工作簿的单元格),然后关闭屏幕更新和警报。问题是,即使编辑工作簿的第一个子位于第二个子之前,单元格也不会更新。
当我关闭第二个 sub 时,单元格会更新。如何更新单元格然后关闭屏幕更新?
Sub mainSub()
Call editSub 'edit cell's value: ThisWorkbook...Cells(i, j).Value=...
Call setupApp 'turns off scren updating, when uncommented prevents the previous sub from getting visible results
...
End Sub
Sub setupApp()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
End Sub
编辑:当mainSub 开始时,屏幕更新已经为真;将setupApp 子注释掉帮助,因为它显然在单元格被编辑之前就被执行了。
Sub editSub()
Dim resultArray() As String
resultArray = getStateNames() 'just returns an array of Strings
displayStateNameArray (resultArray)
End Sub
Sub displayStateNameArray(resultArray As Variant)
ThisWorkbook.Worksheets("sheet 1").Range("C6:C97").Clear
Dim k As Integer
Dim i As Integer
i = 1
For k = LBound(resultArray) To UBound(resultArray)
ThisWorkbook.Worksheets("sheet 1").Cells(5 + i, 3).Value = resultArray(k)
i = i + 1
Next
End Sub
【问题讨论】:
-
getStateNames 中是否有 Application.ScreenUpdating = False?
-
@Moosli 不,没有
-
好的,让我们去卡赫特。您可以在我的答案中的评论中看到它。