Я копирую и вставляю некоторые данные из таблицы MS Excel в другую программу, используя следующий скрипт autohotkey:

f1::
loop 2000
{
Send, {CTRLDOWN}c{CTRLUP}
sleep 100
send {ALTDOWN}{TAB}{ALTUP}
sleep 100
Send, {CTRLDOWN}v{CTRLUP}{enter}
sleep 100
send {ALTDOWN}{TAB}{ALTUP}
sleep 100
send {down}
}
return

В колонке А листа Excel содержится более 2000 записей, которые мне нужно скопировать и вставить в какую-то другую программу.

Моя проблема в том, что все эти записи находятся в случайных ячейках, т.е. в столбце А на листе Excel столько пустых ячеек.

Есть ли в autohotkey какая-либо команда для копирования только тех ячеек, в которых есть данные и пустые ячейки можно опустить?

Можно ли удалить все те строки (ячейки), которые являются пустыми в листе Excel?

Это отличное решение проблемы, предложенное SIDOLA

Еще одна вещь, которую я хотел бы спросить: если во время вставки возникает та же проблема, что я должен делать, а именно, я скопировал некоторые данные из таблицы Excel, и если те же данные уже существуют в программе, куда я хочу вставить их, тогда я хотите, чтобы он избежал вставки этих данных и продолжил следующее копирование. Пожалуйста, помогите ..

1 ответ1

0

Вы можете попробовать проверить, пуста ли переменная Clipboard после отправки Send, {CTRLDOWN}c{CTRLUP} . Если это так, просто пропустите остальную часть потока и переходите к следующему ряду.

f1::
    loop 2000
    {
        Send, {CTRLDOWN}c{CTRLUP}

        ; If nothing was copied, move down and start over
        if (!Clipboard) {
            Send, {down}
            Continue
        }

        sleep 100
        send {ALTDOWN}{TAB}{ALTUP}
        sleep 100
        Send, {CTRLDOWN}v{CTRLUP}{enter}
        sleep 100
        send {ALTDOWN}{TAB}{ALTUP}
        sleep 100
        send {down}
    }
return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .