Это очень странно, я предполагаю, что если вы удалите вторую строку в цикле и просто оставите MsgBox
, тогда x
будет увеличен правильно.
Возможно, ActiveSheet.GetValue
берет первый параметр по ссылке и изменяет его. Вы говорите, что пытались использовать временную переменную, и она не работала, вы пробовали что-то подобное?
For x = 1 to 8
tmp = x
update1 = SwfWindow("NextGen File Maintenance").SwfWindow("SIM Library Configuration").SwfObject("spreadCtl").Object.ActiveSheet.GetValue(tmp, 2)
MsgBox("x=" & x & " tmp=" & tmp)
Next
Если проблема в том, что GetValue
действительно изменяет индекс, вы можете попробовать использовать функцию, которая получает индекс по значению, а затем использует его в цикле.
Public Function GetVal(ByVal index)
GetVal = SwfWindow("NextGen File Maintenance").SwfWindow("SIM Library Configuration").SwfObject("spreadCtl").Object.ActiveSheet.GetValue(index, 2)
End Function