我試圖將存儲在文本中的數字轉換爲多個工作表上的數字。我的問題是,我拼湊在一起的代碼似乎花費了過多的時間。我使用For Each語句循環遍歷必要的工作表和範圍。它不會使Excel崩潰,它只是看起來永遠運行。將存儲爲文本的數字轉換爲數字(對於每個語句)
Sub ConvertTextToNumber()
Application.ScreenUpdating = False
Dim WshtNames As Variant
Dim WshtNameCrnt As Variant
Dim r As Range
WshtNames = Array("Financial Data", "Site Data ", "Org Data", "Program Data")
For Each WshtNameCrnt In WshtNames
On Error Resume Next
For Each r In Worksheets(WshtNameCrnt).UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then r.Value = Val(r.Value)
Next
Next
Application.ScreenUpdating = False
End Sub
當我停止腳本運行並單擊調試時,它似乎在第一個Next語句中被捕獲。我認爲我用來轉換值的方法只是比必要的更多的時間密集型,因此在多張紙上運行它更糟糕。
我願意接受任何和所有建議,以使此過程更快運行。提前致謝!
查看查找使用的最後一行和列,將所有內容加載到數組中,執行更改並將值返回。它會加快速度。就像你在循環測試每個單元並對其進行更改一樣。這將需要很長時間。數組會加速成倍增長。 –
這絕對會幫助我想象。據我所知,我的數據不會超出某個特定點,我的更新適用於我。但是,如果我找到時間,我會更新代碼以找到最後一行和一列,並將其發佈到此處。謝謝! –
而不是將其放在問題中,請將新代碼作爲答案,因爲它是這樣的。 –