2017-05-02 4 views
1

나는 내 워크 플로를 돕기 위해 스크립트를 작성했으며 FIND 및 Excel과 관련된 문제가 발생했습니다. 내가 작성한 코드는 짧은 시간 동안 작동했는데 어떤 일이 일어 났는지, 왜 더 이상 작동하지 않는지는 알 수 없습니다.AppleScript로 찾기 및 제거 Excel에서

내 문제는 ... 파일 이름 및 촬영 이름과 같은 이미지 데이터 목록이 우수합니다. 스크립트를 촬영 이름 열을 통해 검색하고 파일 이름 열의 일치하는 이름을 검색 한 다음 해당 행을 완전히 제거하려고합니다. 모든 행이 점검 될 때까지 계속하려면 해당 조치를 반복하십시오.

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

이렇게 .. 위의 경우 DEF의 전체 행은 촬영 이름 열에 나타나기 때문에 제거해야합니다. 아래는 내가 적극적으로 사용하는 코드이고 D 열은 내 촬영 이름이고 B 열은 내 파일 이름입니다.

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 searchRange 찾을 foundRange을 설정합니다". 파라미터 오류 "번호 50".

나는 코드가 더 새로울 것이나, 누군가가 올바른 방향으로 나를 가리키게하거나 훌륭한 대안을 제안 할 수 있다면!

답변

0

"발견"이 어떤 세포도 찾지 못할 때 문제가 있다고 생각합니다. 오류가 발생합니다. 당신은 다음과 같은 설정 시도/종료 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

감사합니다. 그게 내 마지막에 약간의 조정이 필요한 수정 된 것으로 보인다! –