Тема: AHK: if делает неверное сравнение...
...или у меня руки из ж.. помогите разобраться!
Доброго времени суток!
Предыстория для понимания:
есть доки excel, в них нужно выполнять определенные действия, пытаюсь эти действия автоматизировать.
В колонке А содержится артикул штуковины под наименованием в колонке Б (артикулы - 7ми значные числа (2481, 2482 строки. те, что мелкие (2483-2509 - неведомые числа под'штуковин)).
Задача слудующая:
-в случае, если у штуковины нет под'штуковин - выделять ее красным цветом
-в случае, если у штуковины есть подштуковины - "растягивать"/копировать артикул (к. А) и наименование (к. Б) штуковины на под'штуковины.
Т.е. выглядеть в финале должно так:
Однако, на промежуточном этапе что то пошло не так.
;;Автоматизировать собираюсь после того, как будет все ок, по этому пока что выделяю поле с артикулом в колонке А и проверяю.
Если первый артикул как и надо, выделился красным, то следующий почему то посчитал, что 7161259 < 8
\::
Var3=____
nachalo:
var100=
var101=
nstroki=0
var55=0
Send, ^{vk43}
var100=%clipboard%
send, {down}
Send, ^{vk43}
var101=%clipboard%
start:
msgbox %var100% %var101%
IfInString, var101, %var3% ;; 1ое условие - проверка на "___" в след. строке колонки
{
if (nstroki=0) ;;1 Проверка на наличие под'штуковин
{
send, {up}
send, {LShift down}
send, {right}
send, {LShift up}
MouseClick, left, 280, 100
goto next ;; goto next
}
else if (nstroki>0) ;;1 Проверка на наличие под'штуковин
{
send, {up}
send, {up %nstroki%}
send, {LShift down}
send, {right}
send, {LShift up}
Send, ^{vk43}
send, {LShift down}
send, {down %nstroki%}
send, {LShift up}
Send, ^{vk56}
goto next ;; goto next
}
else
{
msgbox if __ error
return
}
}
else if (var100>var101) ;;2ое условие (наличие под'штуковины)
{
nstroki+=1
send, {down}
sleep 1
Send, ^{vk43}
var101=%clipboard%
goto start
}
else if (var100<var101) ;; 3е условие (следующий артикул)
{
if (nstroki=0) ;; if var100<var101 =0
{
send, {up}{LShift down}{right}{LShift up}
MouseClick, left, 280, 100
goto next ;; goto next
}
else if (nstroki>0) ;; if var100<var101 >0
{
send, {up}{up %nstroki%}{LShift down}{right}{LShift up}
Send, ^{vk43}
send, {LShift down}{down %nstroki%}{LShift up}
Send, ^{vk56}
goto next ;; goto next
}
else
{
msgbox if var100<var101 error
return
}
}
next:
msgbox next
return
В чем причина такого исхода?
P.S. Может есть идеи по оптимизации/ускорению выполненею скрипта?