데이터 입력에 대한 행 할당
새로운 행에 데이터를 추가하려면, 작성한 첫 번째 스크립트로 올바른 경로에 있어야했습니다. tell the selectedTable to add row below last row. 다음으로 값을 설정할 때이 새로 생성 된 행을 참조해야합니다. cell 1, cell 2, 및 cell 3, 그렇지 않으면에 속하는 것으로 언급되는 selectedTable 특정 대신에 row ~ 안에 selectedTable:
set dataToAdd to {¬
myDateFromPlist, ¬
myTimeFromPlist, ¬
theIDFromPlist}
tell application "Numbers" to tell ¬
the front document to tell ¬
the active sheet to tell ¬
table 1
set R to add row below last row
tell R to ¬
repeat with i from 1 to count dataToAdd
set value of cell i to ¬
item i in dataToAdd
end repeat
end tell
셀 값의 설정을 repeat 루프, 왜냐하면 이론 상으로는 값을 할당하는 데 50 개의 셀을 사용할 수 있기 때문에 약간의 타이핑이 필요없고 코드를 좀 더 읽기 쉽게 만들 수 있습니다.
그러나, cell i 내부 repeat 루프는 그 자체로 tell R 성명서 R 새로운 것에 대한 참조이다. row 방금 만들었습니다. 이렇게하면 스크립트에 cell i 이 새로운 row 에 저장된 값을 할당해야합니다. dataToAdd, 단순히 cell i 의 table 1 (나는 너의 sheet 단 하나의 테이블 만 가지고 있습니다.이 경우에는 오래 걸릴 필요가 없습니다. first table whose class of selection range is range. 그러나 잘못 가정했다면 테이블 이름을 지정하는 것이 좋습니다.이 테이블 이름은 선택한 테이블이 항상 올바르지 않을 것이라는 매우 희박한 희망이 아니라 스크립트에서 구체적으로 참조 할 수 있습니다. 표).
질문 내용 및 코드 스 니펫에 대한 몇 가지 사항
지금이 순간이 가장 큰 도움이됩니다.
질문을 게시 할 때 코드 스 니펫을 게시하는 것이 좋습니다 만 조언을 해줄 수 있다면 에이) 컴파일하는 코드 스 니펫을 게시하십시오. 스크립트 편집기 코드 스 니펫이 불완전하기 때문에 파일을 컴파일하려고 할 때 예기치 않은 파일 끝을보고합니다. 비) 다른 사람의 시스템에서 실행할 수 있도록 코드 전체를 충분히 포함시켜야합니다. 즉, 변수 등이 코드 스니 j 내에 정의되어야 함을 의미합니다. 현재, 변수 myDateFromPlist, myTimeFromPlist, 및 theIDFromPlist 또는 포함하고 있기 때문에, 예를 들어 RAM 사용이 확대 된 이유와 관련하여 도움을 줄 수는 없습니다.
이 코드 앞에 여러 코드가있는 것 같습니다. 번호 당신이 접근 한 블록 plist 파일을 사용하여 데이터를 검색하십시오. 그것은 당신의 기억력을 소비하는 방식으로 당신이 해낸 방식 일 것입니다.
마지막 비평으로, 오류 처리는 좋은 생각이지만, 스크립트의 마무리가 완료 될 때까지 나는 그것을 버려야한다. 왜냐하면 현재의 포용 차단에는 너무 많은 코드 행이 포함되어 있기 때문이다. 다른 오류 할 수 있었다 예를 들어, 오류 코드 1001이 표시되면 오류 코드가 없기 때문일 수 있습니다. active sheet; 또는 없다 selection range; 또는 값을 할당 할 때 문제가 발생했습니다. cell, 될 수있는 cell 1, cell 2, 또는 cell 3, 문제의 결과 일 수 있습니다. row 2 또는 변수 중 하나. 또한, 당신은 두 가지가 있습니다. try 블록은 서로 안에 중첩되어있어 꽤 무심하다.
더 많은 도움을 받아야할까요?
이 답변을 통해 행 할당 및 데이터 삽입 문제에 만족하는 솔루션을 얻었다면 간단히 해결할 수있어서 기쁩니다. 이 질문에 대한 다른 질문이 있으면 의견을 남겨주세요. 연락 드리겠습니다. 스크립트, 변수 및 그 이외의 정보에 대한 자세한 정보를 제공하려는 경우이 메모리 사용량이 어디에서 왔는지 알아볼 수 있습니다. 당신이 당신의 코멘트에서 말했듯이 " 이 방법은 있지만 내 RAM이 창 밖으로 뛰고 있습니다. "라고 말하면, 첫 번째 방법과 메모리 소비를 생성 한 방법이 무엇인지 알면 도움이됩니다. 물론 두 가지 스크립트를 게시해야 할 수도 있습니다.
할 수있는 일 이 목적을 위해서 온라인 붙여 넣기 빈을 사용하고 있습니다. 과자류 사용자 이름이나 암호가 필요하지 않으며 AppleScript 구문 강조 표시가 있지만 그 중 하나입니다. 보관함 붙여 넣기 무엇이든 로그인 할 필요가 없습니다. Stack Exchange 웹 사이트에서 특별히 요구되는 추가 코드를 제공하고 싶거나 필요로 할 때 유용하지만 코드 블록이 이미 제공된 질문 자체의 주요 초점에는 실제로 필요하지 않으며 더 많이 제공하면 더 많은 코드 블록이 익사 될 위험이 있습니다. 회색 바다에서 질문.