2017-05-03 10 views
0

13文字以上のファイル名を削除するAppleScriptに問題があります。私はB欄にファイル名のリストを持っており、13文字しか必要としません。私は13以上の行を削除するためのスクリプトを探しています。これまでのところこれは幾分か機能していますが、すべて削除していません。AppleScriptでExcelで文字をカウントして文字を取り除く

 tell application "Microsoft Excel" 
     activate 
     open (choose file with prompt "Select the Excel file you wish to use.") 
    end tell 


    tell application "Microsoft Excel" 
     tell active sheet 
      autofit column "A:H" 
     end tell 
    end tell 

set cellNumber to 2 

    tell application "Microsoft Excel" 
     activate 
     repeat 
      set fileName to get value of cell ("B" & cellNumber) as string 
      set fncount to count characters of fileName 
      if fncount is greater than 13 then 
       delete entire row of cell ("B" & cellNumber) 
       set endCount to 0 
      else 
       set endCount to endCount + 1 
       if endCount > 100 then 
        exit repeat 
       end if 
      end if 
      set cellNumber to cellNumber + 1 
     end repeat 
    end tell 
    set endCount to 0 

答えて

0

スクリプトは、行を削除する場合これは、すべてのものを削除しません、エクセルは、行をシフトアップします。

:スクリプトは今第二行は 第三行である、第二の行を削除するので、スクリプトは

はそれを避けるために行をスキップし、ループインデックスで開始しなければなりません最後の行の

最後の行を取得するには、used rangeプロパティを使用します。

tell application "Microsoft Excel" 
    activate 
    open (choose file with prompt "Select the Excel file you wish to use.") 
    tell active sheet 
     set cellNumber to 2 
     autofit column "A:H" 
     set lastR to count rows of used range -- get the index of the last row which contains a value 
     repeat with i from lastR to cellNumber by -1 -- iterates backwards from the index of the last row 
      set fileName to string value of cell ("B" & i) 
      if (count fileName) > 13 then delete row i 
     end repeat 
    end tell 
end tell 
+0

ありがとうございました!それはトリックでした! –

関連する問題