首页 > 解决方案 > 具有多个变量的每个循环的 VBA

问题描述

在此处输入图像描述

我需要使用基于 6 位位置 ID 的 VBA 在名为 BlueZone 的程序中更新(X,Y)坐标。

三个变量 (1) 位置 (2) X (3) Y 都在电子表格上。

我希望我的代码循环遍历每个位置 ID(A 列)并获取相应的 X 和 Y 坐标(分别为 B、C 列)。IOW,我的单元格 A2 = 位置 ID,B2 = X 坐标,C3 = Y 坐标。

Sub FiXY()

'bzhao is the object declaration to manipulate emulation software by BlueZone

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

Dim myLoc As Variant


myRange = ActiveSheet.Range("A2:C1000") 'have also tried "A2:A1000"

For Each myLoc In myRange

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

'Query location

bzhao.SendKey "Q"
bzhao.Wait 0.2
bzhao.SendKey myLoc 'passes just fine
bzhao.Wait 0.2
bzhao.SendKey "<enter>"
bzhao.Wait 0.2

'does not work
bzhao.SendKey myLoc.Offset(0,1).Value
bzhao.SendKey myLoc.Offset(0,2).Value

'does not work
bzhao.SendKey myRange.Offset(0,1).Value
bzhao.SendKey myRange.Offset(0,2).Value

Next myLoc

End Sub

我知道 SendKey 并不理想,但是这个循环对我来说完美无缺,我可以从工作表上的单元格调用静态 X 或 Y,所以我相信我的代码结构是问题所在。

如何将三个变量放入我的循环中?

标签: vbaloopsforeach

解决方案


推荐阅读