我正在尝试遍历 Excel 中的所有行并在每一行上运行一些命令,但我不知道怎么做!
我最初尝试在 rb-appscript(AppleScript 的 Ruby 包装器)中执行此操作,但我决定在添加另一个 DSL 之前先尝试使其在 Applescript 中运行会更好。有小费吗?(rb-appscript 版本也不错,虽然不是必需的)。
谢谢!
我正在尝试遍历 Excel 中的所有行并在每一行上运行一些命令,但我不知道怎么做!
我最初尝试在 rb-appscript(AppleScript 的 Ruby 包装器)中执行此操作,但我决定在添加另一个 DSL 之前先尝试使其在 Applescript 中运行会更好。有小费吗?(rb-appscript 版本也不错,虽然不是必需的)。
谢谢!
范围的坐标是一个可以动态创建的字符串。循环遍历行的最简单方法是这样的:
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