我编写了一个宏来从外部模拟工具中获取值并在 excel 中打印结果。模拟工具将每 30 秒提供一次值,并将运行数天。因此,我在 VB 中给出了 30 秒的循环延迟。我让它通宵运行。第二天早上,我可以看到在某些行之后没有更新任何结果。但是 VBA 编辑器标题显示宏正在运行,并且外部模拟工具也在运行。excel中最后更新的行并非每次都保持不变。为什么 VBA 停止在 excel 中打印结果?任何帮助都感激不尽。
示例代码:
For l = 3 To lastrow1_mul + 2
Module4.Wait 30
nv = send_data.Call
Sheets(SecondSheetName).Range(SecondSheetCol_9 & l) = Hex(nv)
dv = DT.Call
If dv = 44 Then
Sheets(SecondSheetName).Range(SecondSheetCol_10 & l) = "A"
ElseIf dv = 54 Then
Sheets(SecondSheetName).Range(SecondSheetCol_10 & l) = "B"
Else
Sheets(SecondSheetName).Range(SecondSheetCol_10 & l) = "C"
End If
Next l
模块 4:
Function Wait(PauseTime As Single)
Dim StartTime As Single
StartTime = Timer
While Timer < StartTime + PauseTime
DoEvents
Wend
End Function
Send_data 和 DT 是外部模拟工具的功能。变量 lastrow1_mul 的值在 7000 左右更新,但 excel 中的行本身停止打印 500 左右(并非始终不变)。