当我运行下面的代码时,我不能将"Qty“传递给BlueZone。它将在循环中使用SendKey成功传递for each变量“通道”。我在活动工作表上测试了输出,并根据myRange.Offset(0,n)得到了值。
我有一个n x 4的数组,我想要遍历它。我需要为每次迭代传递一组不同的变量。
我的结构是错的吗?
BlueZone是终端仿真。
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发布于 2021-05-26 19:46:14
因此,我的公司也使用BlueZone。我们已经创建了一个减少代码行的函数:
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 IfEnd函数,这样当你想在BlueZone中输入文本时:
SendKey Qtyhttps://stackoverflow.com/questions/59112205
复制相似问题