Author Topic: Как остановить скрипт при определенном значении в ячейке Excel  (Read 2226 times)

0 Members and 1 Guest are viewing this topic.

Омск

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Есть столбик в Excel, в нем 6500 ячеек со значениями. Нужно перевести формулы в текст. Скрипт я написал:
Code: [Select]
LCLICK(900,470)
WAITMS(50)
KEYPRESS(#F2)
WAITMS(50)
KEYPRESS(#F9)
WAITMS(50)
KEYPRESS(#TAB)
WAITMS(50)
KEYPRESS(#DOWN)
WAITMS(50)
KEYPRESS(#LEFT)   //1
WAITMS(50)
skip:
KEYPRESS(#F2)
WAITMS(50)
KEYPRESS(#F9)
WAITMS(50)
KEYPRESS(#TAB)
WAITMS(50)
KEYPRESS(#DOWN)
WAITMS(50)
KEYPRESS(#LEFT)   //2
WAITMS(50)
GOTO(skip)

Все работает, но бесконечно. Как остановить скрипт, например, если в ячейке стоит значение "1"? Или если ячейка определенного цвета.
И как сделать, чтобы программа периодически ctr+s нажимала? В списке команд я не нашел такой комбинации.

Омск

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Нашел эту комбинацию, дополнил код:
WAITMS(50)
KEYDOWN (#CTRLs)
WAITMS (50)
Еще бы сделать, чтобы пореже нажималась эта комбинация. Но это не так важно.
Главное сделать, чтобы скрипт остановился, когда закончатся ячейки с данными.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Нашел эту комбинацию, дополнил код:
WAITMS(50)
KEYDOWN (#CTRLs)
WAITMS (50)
Еще бы сделать, чтобы пореже нажималась эта комбинация. Но это не так важно.
Главное сделать, чтобы скрипт остановился, когда закончатся ячейки с данными.

Что ты там нашел??
Вот комбинация Ctrl+S
Code: (clickermann) [Select]
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#S)
KEYUP (#CTRL)
WAITMS(50)

На счет остановки.
Code: (clickermann) [Select]
LCLICK(900,470)
WAITMS(50)

FOR($i=0,$i<6500) // повтор 6500 раз
   KEYPRESS(#F2)
   WAITMS(50)
   KEYPRESS(#F9)
   WAITMS(50)
   KEYPRESS(#TAB)
   WAITMS(50)
   KEYPRESS(#DOWN)
   WAITMS(50)
   KEYPRESS(#LEFT)   //2
   WAITMS(50)
END_CYC
HALT // а потом стоп

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Есть столбик в Excel, в нем 6500 ячеек со значениями. Нужно перевести формулы в текст.
Тебе нужно зафиксировать вычисляемые значения? Так зачем всё так сложно.
Выделяешь все нужные ячейки (шифтом) -->> Копировать -->> ПКМ -->> Специальная вставка -->> Радио кнопку "значения" или "как значения" -->> Ok
Profit!

Мне часто приходится участки переводить в значения, вывел на панель кнопку "Вставить значения", теперь даже ПКМ дёргать не нужно.


Омск

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile

Спасибо, этот код работает.
Я хотел доработать, чтобы через каждые, например, 10 значений нажималась кнопка сохранить, но получается или на 11 ячейке сохранить или после каждой ячейки. В коде комбинацию сохранения заменил сигналом для наглядности.

Code: [Select]
LCLICK(577,314)
WAITMS(50)
 
FOR($i=0,$i<30)
   KEYPRESS(#F2)
   WAITMS(50)
   KEYPRESS(#F9)
   WAITMS(50)
   KEYPRESS(#TAB)
   WAITMS(50)
   KEYPRESS(#DOWN)
   WAITMS(50)
   KEYPRESS(#LEFT)   //2
   WAITMS(50)
IF($i=10 )
BEEP(800,200)
END_IF
END_CYC
//EXECUTE("1.mp3")
HALT

Vint
Ваш метод до меня пробовали, он не работает со сложными формулами, там большие формулы с текстом, кавычками и т.п.
« Last Edit: November 13, 2018, 06:37:37 AM by Омск »