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")

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