我需要創建一個包含位數組的視覺表示的Excel表。目前我測試位值,以及更新單元格內容自動化Excel時的慢循環
For h = 1 To 128
value = Mid(array, h,1)
If value = "1" Then
xl.Application.Sheets("Sheet1").Cells(129 - h,5).value = "X"
Else
xl.Application.Sheets("Sheet1").Cells(129 - h,5).value = ""
End If
Next
如果我下一步之前添加WScript.Sleep 100
然後輸出結果在Excel工作表是正確的。
如果沒有,那麼X的位置是錯誤的。
最初我以爲這是Excel慢,所以我試着做一個CSV文件,我可以稍後導入,但結果相同:速度太快,X的位置錯誤,放慢速度,他們是正確的。
這些128位陣列中大約有128個,如果每個都需要3〜5秒,那麼使這張表將永遠佔用。
有誰知道我該如何快速實現?我接受其他想法/解決方案(使用VBS)輸出excel文件。
謝謝!
由於對於那個答覆,@chris neilsen。由於VBS不支持Iif語句,因此我使用標準的「IF Then Else EndIF」。當**創建數組時,會發生問題,而不是轉置它。我通過創建CSV文件證明了這一點,運行_full速度時結果爲_incorrect_,但在「For ... Next」循環之間添加WScript.Sleep 100時正確。這個正確的數組然後可以轉置到Excel工作表。 – BertB
全速創建時位陣列**表示**不正確。降低的速度是_not_,因爲它一次寫入excel表單,但是因爲減慢「For ...... Next」循環提供了正確的位數組表示_。 – BertB
我建議你發佈[MCVE](http://stackoverflow.com/help/mcve),以便其他人可以測試這些。 –