Applescript получит все значения столбца Excel - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь сохранить все значения столбца Excel в массиве.

        set rangeDate to {value of range "A14:A100"}
        repeat with date in rangeDate
            if (date as string is equal to "01/01/2001") then
                log "It works"
            end if
        end repeat

В моем Excel у меня есть точная дата 01.01.2001, отформатированная в указанных столбцах.Когда я удаляю диапазон, и это просто ячейка A14 (где дата), это работает.Но когда я включаю диапазон A14: A100, он не работает.

Я новичок в AppleScript, я предполагаю, что он не хранит значения в виде значений массива, а вместо этого строковый объект?Любая помощь будет оценена

1 Ответ

0 голосов
/ 08 октября 2018

У вас есть 4 проблемы:

1) значение диапазона должно быть не между {}, а между ()

2) «Дата» - это зарезервированное слово в Applescript, поэтому выне следует использовать его как переменную в цикле.Я заменил его на «myDate».

3) вместо преобразования вашей даты в строку для сравнения с «01/01/2001», быстрее сравнить 2 даты, а затем сравнить с датой"01/01/2001"

4) Я думаю, что это ошибка (по крайней мере, в моей версии Excel), но переменная rangeDate - это не список дат, как ожидалось, а для меня список списка: {{01/02/01}, {02/02/01}, ………} Таким образом, каждый элемент rangeDate - это не дата, а список, созданный для одного элемента, который является датой!Я не уверен, но возможно, что определение диапазона может быть списком диапазонов ... Так что я использую пункт 1 подсписка.

В любом случае, скрипт ниже работает:

tell application "Microsoft Excel"
    activate
    tell active sheet of document 1
        set rangeDate to (value of range "A14:A100")
        repeat with mydate in rangeDate
            set TheDate to item 1 of mydate
            if TheDate = (date "lundi 1 janvier 2001 00:00:00") then
                log "It works"
            end if
        end repeat
    end tell
end tell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...