首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环中的VBA变量- BlueZone仿真

循环中的VBA变量- BlueZone仿真
EN

Stack Overflow用户
提问于 2019-11-30 08:21:20
回答 1查看 338关注 0票数 1

当我运行下面的代码时,我不能将"Qty“传递给BlueZone。它将在循环中使用SendKey成功传递for each变量“通道”。我在活动工作表上测试了输出,并根据myRange.Offset(0,n)得到了值。

我有一个n x 4的数组,我想要遍历它。我需要为每次迭代传递一组不同的变量。

我的结构是错的吗?

BlueZone是终端仿真。

https://www.rocketsoftware.com/products/rocket-bluezonepassport-terminal-emulator/rocket-bluezone-terminal-emulation

代码语言:javascript
复制
Sub Grooming1()



Dim bzhao As Object
Set bzhao = CreateObject("BZWhll.WhllObj")
bzhao.Connect ""


Dim aisle As Variant
Dim Qty As Variant
Dim LDAP As Variant
Dim Priority As Variant

Set myRange = ActiveSheet.Range("A2:A1000")
'Set myQty = ActiveSheet.Range("B2:B1000")
'Set myLDAP = ActiveSheet.Range("C2:C1000")
'Set myPriority = ActiveSheet.Range("D2:D1000")


For Each aisle In myRange

Set Qty = myRange.Offset(0, 1)
Set LDAP = myRange.Offset(0, 2)
Set Priority = myRange.Offset(0, 3)

'end loop at blank cell
    If aisle = "" Then
        Exit For
            End If

bzhao.SendKey "<PF3>"
bzhao.Wait 0.5
bzhao.SendKey Qty '<---ERROR
bzhao.Wait 0.5

'ActiveSheet.Range("F2") = Qty
'ActiveSheet.Range("F3") = LDAP
'ActiveSheet.Range("F4") = Priority
'ActiveSheet.Range("F5") = aisle

Next aisle


End Sub
EN

回答 1

Stack Overflow用户

发布于 2021-05-26 19:46:14

因此,我的公司也使用BlueZone。我们已经创建了一个减少代码行的函数:

代码语言:javascript
复制
Public Function SendKey(ByVal aKey As String)
BZHost.SendKey aKey
If BZHost.WaitReady(10, 1) <> 0 Then
    Err.Raise 2049, "", "BlueZone session failed to respond within 10 second timeout limit!"
End If

End函数,这样当你想在BlueZone中输入文本时:

代码语言:javascript
复制
SendKey Qty
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59112205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档