2011-08-15 5 views
2

Excel에서 모든 행을 반복하고 각 행에서 일부 명령을 실행하려고 시도하지만이를 파악할 수 없습니다!Applescript를 사용하여 Excel에서 모든 행을 반복하는 방법은 무엇입니까?

처음에는 rb-appscript (AppleScript 용 Ruby 래퍼)에서 해봤지만 다른 DSL을 추가하기 전에 AppleScript로 먼저 작동시키는 것이 더 낫다고 결정했습니다. 어떤 팁? (rb-appscript 버전도 좋을 것이다.).

감사합니다.

답변

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 

업데이트 : 당신의 행을 반복하는 가장 간단한 방법이 같은 것이 계산을 필요로하는 행의 수를 얻으려면,이에 도움이 서브 루틴 세 전에 썼다. 일관되게 채워지는 일종의 "키"열 (즉, 건너 뛴 셀이 없음)이 있는지 확인하십시오. 같은 날의 ("A")

repeat with thisRow from 2 to lastRow + 1 
    -- go attack Excel 
end repeat 
+0

을에서 getItemCount에 설정 lastRow :

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 

간단하게 사용이 작업을 수행하려면 : 내 스프레드 시트의 모든 그들이 있기 때문에이 기능은 현재 계정으로 헤더 행을 취 시간, 나는 당신이 applescript로 잠시 전에 rb-appscript로 시간을 보낼 필요가 있다고 생각한다. 왜냐하면 그다지 잘 번역되지 않는다고 생각하기 때문이다. –

+0

고마워요! 이것은 10 행을 반복하는 것을 볼 수 있습니다 - 나는 모든 행을 반복합니다. 이것을 달성하는 방법에 대한 아이디어? rb-appscript의 사람들이 AppleScript를 AppScript (Ruby, Python 또는 Objective C)로 변환하는 ASTranslate라는이 멋진 도구를 발표했지만 사용자 의견에 동의합니다. http://sourceforge.net/projects/appscript/files/ –

+0

@yuval : 답변에 의견으로 답변 할 수 없어 귀하의 의견에 따라 답변을 업데이트했습니다. 나는 여전히 AppleScript로 시간을 보내서 rb-appscript 프로젝트의 컨텍스트와 의도를 이해할 것을 권장합니다. –

관련 문제