VBA If语句中的For Each用于仿真

我需要在BlueZone中更新数千个X坐标。我正在使用VBA在BlueZone VT中输入关键命令。不幸的是,没有“设置光标位置”命令,因此我仅限于使用“制表符”将光标放在需要移动的位置。

在坐标更新屏幕上,有两种可能性:6或7个选项卡,取决于屏幕上是否存在0。

例如:位置241054的数字为1,需要7个标签;位置241051的数字为0,需要6个标签,以获取X位置字段,以便我将其转储到变量中。

这是我的代码:

Sub FiXCoord_Loop()

'Must start at IMLOA screen

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

Dim myX As Integer
Dim res_check As Integer
Dim myLoc As Variant
'Dim res_check As Variant


myRange = activeSheet.Range("A2:A1000")
'myResRange = activeSheet.Range("D3")
myX = activeSheet.Range("E1").Value
res_check = activeSheet.Range("D3").Value

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
bzhao.Wait 0.2
bzhao.SendKey "<enter>"
bzhao.Wait 0.2

'Copy screen to get res#

bzhao.Wait 1
bzhao.Copy 32
bzhao.Wait 1

'Paste info to sheet for res_check

Range("J1").Select
activeSheet.Paste


bzhao.SendKey "M"
bzhao.Wait 0.2
bzhao.SendKey "<tab>"
bzhao.Wait 0.2
bzhao.SendKey "<tab>"
bzhao.Wait 0.2
bzhao.SendKey "<tab>"
bzhao.Wait 0.2
bzhao.SendKey "<tab>"
bzhao.Wait 0.2
bzhao.SendKey "<tab>"



'if value > 0 extra tab

If res_check > 0 Then

    bzhao.SendKey "<tab>"
    bzhao.Wait 1
    bzhao.SendKey "<tab>"
    bzhao.Wait 1
    bzhao.SendKey myX
    bzhao.Wait 0.2
    bzhao.SendKey "<enter>"
    bzhao.Wait 0.2
    bzhao.SendKey "E"
    bzhao.Wait 0.5

Else

bzhao.Wait 0.2
bzhao.SendKey "<tab>"
bzhao.Wait 1
bzhao.SendKey myX
bzhao.Wait 0.2
bzhao.SendKey "<enter>"
bzhao.Wait 0.2
bzhao.SendKey "E"
bzhao.Wait 0.5

End If


Next myLoc


End Sub

由于我只能通过键盘命令在屏幕上移动,因此我正在复制屏幕并将其粘贴到工作表上以检查是否为0。但是,我无法获得if-then语句。

代码仅使用6个选项卡运行,这告诉我要么无法识别res_check值(这是将值拉出屏幕的mid()语句),要么变量未随环。但是,如果我先运行res_check> 0位置,它仍然会显示6个标签,因此我可以消除这种可能性。

作为进一步的检查,我对res_check值进行了TRUE FALSE检查,并在将其调为整数时通过。但是,在工作表上,IsnUMber()失败。

TLDR:如果“则”将不会产生期望的结果-代码将默认保持为“其他”条件。

VBA If语句中的For Each用于仿真

VBA If语句中的For Each用于仿真

a479751780 回答:VBA If语句中的For Each用于仿真

以下代码有效。

单元格D3 = mid(J7,63,1)和单元格D8 = D3 * 1

我也按照@donpablo的建议缩进了(见评论)。

#include <iostream>
#include <array>
#include <algorithm>

int main ()
{
    std::array<std::string,3> text = {"Apple","Banana","Orange"};
    std::for_each(text.begin(),text.end(),[](std::string &string){ std::cout << string << "\n"; });

    return 0;
}
本文链接:https://www.f2er.com/3064136.html

大家都在问