【发布时间】:2012-11-23 06:40:30
【问题描述】:
我编写了一个宏来从外部模拟工具中获取值并将结果打印到 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 左右停止打印(并非始终不变)。
【问题讨论】:
-
我尝试使用错误捕获块,但没有捕获任何错误。
-
你需要提供一些代码/例子
-
@PhilipABarnes 很抱歉问这个问题.. 我怎样才能在这里添加一段代码。我在这里尝试复制粘贴,但代码就像一个段落。
-
编辑您的原始帖子,不要添加 cmets。然后,您也可以从其中一个图标中格式化为代码
-
@PhilipABarnes 谢谢巴恩斯。示例代码已更新。