1
這是我正在看的。我有我導入使用下面的VBA的部分片:VBA - 檢查公式是否在單元格運行緩慢
Sheets("Sheet1").Select
Range("D1:D1").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
與此有關的問題是,每當我運行它,它打亂了我的公式中的A和B列。所以,我創建了一個子,將檢查是否存在如下:
Sub fixAnB()
Dim sh As Sheet9
Dim rw As Range
Set sh = Sheet9
sh.EnableCalculation = False
'Sheets("Sheet1")
Dim i As Long
i = 0
Dim f1 As String, f2 As String
For Each rw In sh.Rows
i = i + 1
If i > 1 And sh.Cells(rw.Row, 4).Value <> "" Then
f1 = "=CONCATENATE(G" & i & ",J" & i & ")"
f2 = "=CONCATENATE(I" & i & ",H" & i & ",J" & i & ")"
If sh.Cells(rw.Row, 1).Formula <> f1 Then sh.Cells(rw.Row, 1).Formula = f1
If sh.Cells(rw.Row, 2).Formula <> f2 Then sh.Cells(rw.Row, 2).Formula = f2
End If
If sh.Cells(rw.Row, 4).Value = "" Then Exit For
Next rw
sh.EnableCalculation = True
End Sub
我這個問題是我可以20,000-200,000記錄上板之間有任何地方。所以使用該子來修復這些公式大約需要10-15分鐘。我在尋找解決方案之一:
- 一種方式,以便它不亂,當我輸入我的數據
或 2.做出的方式引用來解決原來的問題修復者子跑的方式更快。
你覺得怎麼樣?
如果一切正常,但僅僅是緩慢的,我建議,而不是張貼到[代碼審查(https://開頭codereview.stackexchange.com/)。也就是說,在開始時嘗試轉換screenupdating('Application.ScreenUpdating = False')。 – BruceWayne
我實際上希望得到#1的答案,所以我根本不必運行子程序 –
如果您的數據設置爲表格,會發生這種情況嗎? – QHarr