Как перебрать все строки в Excel с помощью Applescript?
Я пытаюсь перебрать все строки в Excel и запустить какую-то команду в каждой строке, но я не могу понять, как!
Сначала я попытался сделать это в rb-appscript (оболочке Ruby для AppleScript), но решил, что лучше будет сначала попытаться заставить его работать в Applescript, прежде чем добавлять еще один DSL. Какие-нибудь советы? (версия rb-appscript тоже подойдет, хотя и не обязательна).
Спасибо!
1 ответ
Координаты диапазона - это строка, которую вы можете создавать динамически. Самый простой способ перебрать ваши строки будет примерно так:
repeat with thisRow from 1 to 10
tell application "Microsoft Excel"
set theRange to "A:" & thisRow & "Z:" & thisRow
set theValue to (get value of range theRange) as list
-- do something with the row's data
end tell
end repeat
Обновление по комментариям: Чтобы получить количество строк, требующих вычисления, я написал подпрограмму давным-давно, чтобы помочь с этим. Убедитесь, что у вас есть какой-то "ключевой" столбец, который постоянно заполнен (другими словами, пропущенные ячейки отсутствуют). Это в настоящее время учитывает строку заголовка, так как все мои электронные таблицы имеют их:
on GetItemCount(KeyColumn)
set RowNumber to 1
set theText to "cSyoyodylg" -- dummy value
tell application "Microsoft Excel"
repeat until theText is ""
set RowNumber to RowNumber + 1
set theRange to KeyColumn & RowNumber & ":" & KeyColumn & RowNumber
set dataRange to range theRange of sheet 1
set theText to (get value of range theRange)
end repeat
end tell
set rowCount to RowNumber - 1
return rowCount
end GetItemCount
Чтобы использовать, просто сделайте это: установите lastRow в GetItemCount("A") из меня
repeat with thisRow from 2 to lastRow + 1
-- go attack Excel
end repeat