2017-05-02 14 views
1

私はワークフローを支援するためのスクリプトを作成しており、FINDとExcelの問題に取り組んでいます。私がまとめたコードは短時間の間働きましたが、何が起こったのか、もう何も働かないのは分かりません。Applescript Excelでの検索と削除

私の問題はこれです...私はそのようなファイル名などの画像データのエクセルリストを持っているし、名前を撃ちます。私はスクリプトを撮影名の列をスキャンし、ファイル名の列に一致する名前を検索し、その行を完全に削除することを検討しています。すべての行がチェックされるまで、そのアクションを繰り返して続行します。

EX. 
Filename Shoot Name 
ABC  DOS 
DEF  OXL 
GHI  DEF 
JKL  ASC 

SO ..この場合、DEFの列全体が上記の名前の欄に表示されるため、削除する必要があります。以下は私が積極的に使用しているコードです。列Dは私の撮影名、列Bは私のファイル名です。 。パラメータエラー「番号-50 『:私はそれを実行したときに

tell application "Microsoft Excel" 
    activate 
    repeat 

     set checkShootName to get value of cell ("D" & RowNo) 
     if checkShootName ≠ "" then 
      set ShootName to value of cell ("D" & RowNo) as string 
      set searchRange to range ("B:B") 
      set foundRange to find searchRange what ShootName 
      set fRow to first row index of foundRange 
      set myData to value of range ("B" & fRow as text) 


      delete entire row of cell ("B" & fRow) 

      set endCount to 0 

     else 
      set endCount to endCount + 1 
      if endCount > 100 then 
       exit repeat 
      end if 
     end if 
     set RowNo to RowNo + 1 
    end repeat 
end tell 

は今のスクリプトは、Microsoft Excelがエラーを得たエラー』エラー」と「何ShootName探索範囲を見つけることfoundRangeを設定する」に立ち往生し続けます。

私はコードには新しいですが、誰かが正しい方向に私を指すことができるか、素晴らしいことになる代替案を提案することができます!

答えて

0

"find"がセルを見つけられないときが問題だと思います。エラーが発生します。あなたが怒鳴るなどのtry /最後のtryブロック内でそれを扱うことができます。次の手順について

try 
    set foundRange to find searchRange what Shootname 
    set fRow to first row index of foundRange 
on error -- nothing found  
    set fRow to 0 
end try 

をfRowが0でない場合は、行が見つかり、fRowが0であれば、削除することができ、その後、見つからない行。

+0

ありがとうpbell!それと私の最後に少し微調整が必​​要な修正されているようだ! –

関連する問題