2017-09-14 17 views
0

私はAppleScriptに関するヘルプを探しています(残念なことに作業上の理由からAppleScriptに限られています)。具体的には、その列の各セルをコピーして貼り付ける際にExcelの列をループする方法を理解できません。AppleScript(列まで)(空になるまで)、コピーしてWebフォームに貼り付けてください

は、ここで私がこれまで持っていないものです:

to clickID(theId) -- clickID function start 
    tell application "Safari" 
    do JavaScript "document.getElementById('" & theId & "').click();" in document 1 
    end tell 
end clickID 
--__________________________________________ 
tell application "Microsoft Excel" 
    activate 
    open "Filepath/Starfox Tester.xlsx" --changed filename for privacy 
    get active workbook 
    select cell "A2" --Headers will be in column A1, hence why selecting A2 
    tell application "System Events" to tell process "Microsoft Excel" to keystroke "c" using command down 
end tell 

do shell script "open -a Safari 'https://google.com'" 
    delay 2 --for website to load 
    clickID("lst-ib") 
    tell application "System Events" to tell process "Safari" to keystroke "v" using command down 

は、これまでのところ、これは動作します。手動で行う方法を理解していますが、このスクリプトを実行するたびに列の行数が変わるため、空のセルが見つかるまでループする必要があります。

ご協力いただければ幸いです。ありがとうございました!

更新: 私はそれを行う最も簡単な方法は、if elseループかもしれないと思います。私の基本的なアイデアは、参照のセルが空白でない場合、ハンドラ(関数)を実行することです。私はおそらく50個以上の細胞を持っていないので、私は(A1 - A50)でそれをハードコーディングし、そのたびにハンドラを実行するつもりです。

現在、ハンドラのコーディング方法を理解しようとしています。ここで私はこれまで持っているものです。

to populateVal(cellValue) 
    tell application "Microsoft Excel" 
    get active workbook 
    select cellValue 
    tell application "System Events" to tell process "Microsoft Excel" to keystroke "c" using command down 
     activate Safari 
     clickID("lst-ib") 
     tell application "System Events" to tell process "Safari" to keystroke "c" using command down 
    end tell 
end populateVal 

do shell script "open -a Safari 'https://google.com'" 

tell application "Microsoft Excel" 
activate 
open "Filepath/Starfox Tester.xlsx" 

    if cell "A2" ≠ "" then 
    populateVal("A2") 
    else 
    display dialog "Done!" 
    end if 

end tell 

私は現在、Excelが「populateValを続行できません」というエラーを取得しています。私がA2のまわりのかっこを取り除くと、A2が "定義されていない"というエラーが出ます。どんな助けもありがとう!

答えて

0

いくつかの調整の後で、私は下の解決策を思いついた。

on selectVal(cellValue) 
tell application "Microsoft Excel" 
    activate 
    get active workbook 
    select cell cellValue 
    tell application "System Events" to tell process "Microsoft Excel" to keystroke "c" using command down 
    delay 0.5 
    tell application "System Events" to tell process "Microsoft Excel" 
     key code 124 
    end tell 
    tell application "Safari" 
     activate 
     my clickID("lst-ib") 
     tell application "System Events" to tell process "Safari" to keystroke "v" using command down 
    end tell 
end tell 
end selectVal 
---- 

do shell script "open -a Safari 'https://google.com'" 
delay 2 --for website to load 

tell application "Microsoft Excel" 
open "Filepath/Starfox Tester.xlsx" 
end tell 

selectVal("A2") 
delay 1.5 
selectVal("B2") 
delay 1.5 

基本的に、私は、値をコピーし、手動で次のセルに移動し、Webページ上の特定のアクションを実行するためのハンドラ/機能を作成しました。この背後にある私の思考プロセスは、データの単一の行(私は列を設定しますが、可変の行)で動作するハンドラを構築し、次に、私が持っているデータの各行に対してハンドラを呼び出します。 B2、C2などに変換し、そのセルの値で特定のアクションを実行します(Webページは静的です)。

こちらがお役に立てば幸いです。

関連する問題