Diese Frage bezieht sich auf:
wo ich versuche herauszufinden, wie ich mit AppleScript tun kann, was ich will.
Ich habe im Internet nach einer Möglichkeit gesucht, das aktive Blatt in Numbers festzulegen, bevor ich versuche, dort eine Änderung vorzunehmen. Die vorbereitenden Schritte sind im Wesentlichen:
tell application "Numbers"
activate
try
set the chosenDocumentFile to "/path/to/myfile.numbers"
open the chosenDocumentFile
on error errorMessage number errorNumber
if errorNumber is not -128 then
display alert errorNumber message errorMessage
end if
end try
tell chosenDocumentFile
try
-- this is where I'm stuck
end try
end tell
end tell
Die meisten Dinge, die ich online gefunden habe, sprechen über das Erstellen oder Löschen von Blättern, aber ich habe nichts gefunden, das ein klares Beispiel dafür bietet, wie man ein Blatt auswählt .
In meinem Fall habe ich derzeit 5 Blätter in meiner Tabelle. Ich weiß, dass ich das zweite Blatt auswählen möchte, um darauf zu reagieren ( sheet 2
- richtig?)
Ich habe es versucht:
open the sheet 2
open sheet 2
select sheet 2
activate sheet 2
Keiner von ihnen scheint zu funktionieren, und alle verhindern, dass die nächste Codezeile innerhalb dieser einschließenden try
Anweisung ausgeführt wird.
Ich hoffe, es gibt eine wirklich einfache Antwort darauf (ich habe noch viel zu tun, bevor ich den Code bekomme, um alles zu tun, was ich will, aber ich stecke gerade hier fest).
Soweit ich weiß, hat Numbers keinen expliziten AppleScript- Befehl , um ein bestimmtes Blatt auszuwählen .
Es gibt die active sheet
Eigenschaft des Dokuments , z.
tell application "Numbers" to get active sheet of front document
was die active sheet
; obwohl man denken könnte, dass z.
tell application "Numbers" to set active sheet of front document to sheet 2
Angenommen, es gibt ein sheet 2
, würde z. B. sheet 2
auf das setzen active sheet
, es setzt es nicht als das active sheet
.
sheet
Hier ist die Methode, die ich verwende, um die Angaben active sheet
im vorderen Dokument zu machen:
Hinweis: Dies ist eine Hack-Methode und bewirkt, dass ein gespeichertes Dokument als bearbeitet angezeigt wird, obwohl es den Wert der Zielzelle nicht ändert . Es funktioniert, indem es den Wert von cell "A1"
auf seinen aktuellen Wert setzt , so dass, obwohl es als Bearbeitung wahrgenommen wird, keine Daten von seinem aktuellen Wert geändert wurden . Es funktioniert jedoch für mich in Numbers 5.1 in macOS High Sierra, und deshalb verwende ich es.
my selectSheet(2)
on selectSheet(n)
try
tell application "Numbers"
activate
set value of first cell of first table of sheet n of front document to ¬
(value of first cell of first table of sheet n of front document)
end tell
-- # Press escape key to remove focus from cell A1.
tell application "System Events" to key code 53
on error eStr number eNum
display dialog eStr & " number " & eNum buttons {"OK"} ¬
default button 1 with icon caution
return
end try
end selectSheet
Hinweis: Der Beispiel- AppleScript- Code ist genau das und enthält abgesehen von der enthaltenen Fehlerbehandlung keine andere Fehlerbehandlung , die angemessen sein könnte. Es obliegt dem Benutzer, eine Fehlerbehandlung hinzuzufügen, die angemessen, erforderlich oder gewünscht ist. Sehen Sie sich die try- Anweisung und die error- Anweisung im AppleScript Language Guide an . Siehe auch Arbeiten mit Fehlern .
Verspätet…
set active sheet of document 1 to sheet 2 of document 1
Grundsätzlich müssen Sie für jedes Blatt angeben, auf welches Dokument verwiesen wird.
Wenn Sie einen Dokument-Tell-Block einfügen, können Sie dies natürlich vermeiden:
tell document 1 of application "Numbers"
set active sheet to sheet 2
end tell
ghoti
ghoti
Benutzer3439894
ghoti
ghoti