vba - 从 VBA 检查串口是否为空
问题描述
我想通过串行端口的 VBA 从条形码扫描仪读取数据。就其本身而言,我可以使用以下代码来做到这一点。
Sub COM()
Dim COM_Byte As Byte
Dim Input_Buffer As String
Open "COM7:9600,N,8,1" For Random As #1 Len = 1
Input_Buffer = ""
Do
Get #1, , COM_Byte
If COM_Byte Then
If COM_Byte = 13 Then
Debug.Print Input_Buffer
Exit Do
Else
Input_Buffer = Input_Buffer & Chr(COM_Byte)
End If
End If
Loop
Close
End Sub
但是,我的问题是带有“Get”的行会阻塞代码,直到数据出现在端口上。有没有办法在执行“Get”之前检查端口上是否有数据?然后我可以让它循环运行,直到数据进入并且仍然能够使用“DoEvents”执行操作。无法手动启动查询。程序必须识别自己何时以及是否有数据可用。
解决方案
推荐阅读
- javascript - 视差滚动在移动设备上不起作用
- ios - 带有分隔符的Objective C UIButton并在选择时更改文本颜色
- c# - 使用 ClickOnce 在 GitHub 上部署安装/更新问题
- vue.js - 在 nuxt.js 中添加 cdn 样式表和 javascripts
- python - 如何解决安装 Jupyter 的错误?
- haskell - 在 Haskell 中从 Kind 构造值
- python - django-easy-pdf 不显示内容
- typescript - 错误 TS2339:类型“{}”上不存在属性“contenido”
- angular - 如果 Markdown 编辑器在表单中留空,如何抛出错误?
- excel - 如果用户插入了新工作表,则自动运行宏