2

Excel のすべての行をループして、各行でコマンドを実行しようとしていますが、方法がわかりません。

最初は rb-appscript (AppleScript の Ruby ラッパー) で試してみましたが、別の DSL を追加する前に Applescript で最初に動作させる方がよいと判断しました。任意のヒント?(必須ではありませんが、rb-appscript バージョンもいいでしょう)。

ありがとう!

4

1 に答える 1

2

範囲の座標は、動的に作成できる文字列です。行をループする最も簡単な方法は次のようになります。

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") of me に設定します。

repeat with thisRow from 2 to lastRow + 1
    -- go attack Excel
end repeat
于 2011-08-15T14:41:24.930 に答える