ExcelScript를 사용하여 Excel에서 특정 행을 삭제하려고합니다. 주어진 열의 값을 기반으로 행을 삭제하고 싶습니다. 주어진 열 내에서 값의 목록 (예 : 3001, 3004, 5003 등)을 유지하고 싶습니다.Excel에서 AppleScript로 행 삭제
예를 들어, 내 값 (3001, 3004, 5003) 중 하나라도 C 열에 있으면 해당 값이 들어있는 행을 유지하려고합니다. 행 C에 내 값 중 하나가 포함되어 있지 않으면 해당 행을 삭제하려고합니다. 나는이 applescript를 여기에서 찾았다. 그러나 모든 것은 삭제한다. 그러나 열 2 그러나 나는 가치의 나의 범위를 유지하기 위해 그것을 얻을 수 없다.
필자는 C 열을 사용하여 "(Not NY State)"를 "(Not 3001)"로 변경 했으므로 필드 3의 필드 10을 대체했지만 작동하지 않았습니다. 또한 방법 "(3001, 3004, 5003)"나는 그들을 나열 않는 값을 표시해야합니까 또는 "(3001, 3004, 5003) 또는 무엇
tell application "Microsoft Excel"
set autofilter mode of active sheet to false
set lastRow to first row index of last row of used range
autofilter range row ("1:" & lastRow) field 10 criteria1 "(Not NY State)"
select row ("2:" & lastRow)
delete selection -- if you want to delete
#clear contents selection -- if you only wish to clear the data
end tell
고마워요.하지만 루프의 잠시 b/c 걸립니다. 그것을 할 수있는 더 짧은 방법이 있습니까? 또한, 어떻게 내 머리글과 첫 번째 행을 제외 할 수 있습니까? 이것은 내가 사용한 코드입니다. myValues를 {3102, 3104, 3105}로 설정합니다. \t에 행을 설정하면 ((활성 시트의 사용 된 행의 행 수) +1) cellValue 다음 \t \t \t 삭제 행 내가 \t \t \t 최종 반복 끝이 –
에게 최종 경우 제외 할 myValues에없는 경우 셀의 값 ("C"& I) \t \t-1 \t \t 설정 cellValue 헤더, 루프를 "반복하십시오 rowCount에서 -2로 -1까지. " 그러면 첫 번째 줄 처리가 중단됩니다. 퍼포먼스와 관련하여 모든 값을 앞에두고 루프를 반복하는 것이 도움이 될 수 있습니다. 그러면 엑셀로 걸려 오는 전화가 절반으로 줄어들 것입니다. 스크립트가 실행되는 동안 Excel을 숨기면 빠른 속도로 2-3 배 실행됩니다. –
모든 도움에 감사드립니다! 그것은 훌륭하게 작동하지만 "-2 by -1"대신 "+2 by -1"이됩니다. 한 가지 더 질문합니다. 모든 값을 앞에두고 루프를 반복하면 무엇을 의미합니까? –