我需要创建一个包含位数组的视觉表示的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),以便其他人可以测试这些。 –