Ustawianie wartości komórki Numbers za pomocą AppleScript

3

Próbuję napisać skrypt liczbowy (aby to zrobić , jak to się dzieje), w którym muszę zmienić wartość komórki.

Jeśli jednak zrobię coś takiego

tell application "Numbers"
    activate
    tell document 1
        tell sheet 3
            set the value of cell "E1" to 1000
        end tell
    end tell
end tell

wtedy dostaję błąd

 error "Numbers got an error: Can’t set cell \"E1\" of sheet 3 of document 1 to 1000." number -10006 from cell "E1" of sheet 3 of document 1

ale nie zawiera żadnych informacji o tym, dlaczego nie może ustawić tej komórki. Dokument, arkusz i komórka istnieją.

Wydaje mi się, że może to zależeć od mojego konkretnego arkusza kalkulacyjnego, ale czy jest to właściwy sposób na ustawienie wartości komórki, a jeśli tak, to co jeszcze mogę zrobić, aby zrozumieć, dlaczego nie działa?

Nataniel
źródło
Myślę, że to, co masz, powinno działać, ale w tej chwili nie jestem przed komputerem Mac, więc nie mogę się tym bawić. Jeśli ktoś jeszcze nie włączy się przed powrotem do komputera Mac, przetestuję na moim końcu. Jestem prawie pewien, że otrzymany kod błędu odnosi się do odmowy zapisu do pliku. Czy jest coś, co może wyjaśnić, dlaczego odmówiono Ci pozwolenia na ustawienie wartości? Czy Numbers działa? Czy arkusz kalkulacyjny jest już otwarty? Coś innego?
Monomeeth
@Monomeeth dziękuję za przyjrzenie się temu. Plik istnieje i jest otwarty w Numbers. Jest to obecnie najważniejszy dokument i jest zapisywany w podfolderze mojego folderu Dokumenty, gdzie nie powinno być problemów z uprawnieniami do plików.
Nathaniel
(Jedną rzeczą jest to, że obecnie jest wiele innych niezapisanych dokumentów, których nie chcę obecnie zapisywać ani zamykać. Rozumiem, że „dokument 1” zawsze odnosi się do okna z przodu, ale tak naprawdę nie mogę go znaleźć stwierdzone w dowolnej dokumentacji, a jeśli się mylę, podejrzewam, że może to być próba ustawienia komórki w jednym z innych dokumentów.)
Nathaniel
Hmm, dostaję podobne błędy, próbując uzyskać nazwę pliku dokumentu 1 lub próbując uzyskać wartość komórki A1 w arkuszu 1. Wydaje mi się, że problemem jest w ogóle dostęp do dokumentu 1.
Nathaniel
np. error "Numbers got an error: Can’t get cell \"A1\" of sheet 1 of document 1." number -1728 from cell "A1" of sheet 1 of document 1(Przeredaguję to wszystko do pytania później)
Nathaniel

Odpowiedzi:

3

Znowu jestem przed komputerem Mac, wypuściłem kod i dostałem ten sam błąd, więc prawdopodobnie jest to nieco mylące pod względem tego, co to właściwie znaczy.

Jednak trochę bawiłem się twoim skryptem i udało mi się uruchomić kod, używając następującego kodu:

tell application "Numbers"
  tell table 1 of sheet 3 of document 1
    set the value of cell 1 of column "E" to 1000
  end tell
end tell

Jednak teraz, kiedy mam to do pracy, chciałem tylko oflagować, że wydajesz się mocno kodować komórkę itp. Oznacza to, że jeśli pozycja się zmieni, skrypt nie będzie dynamiczny. To, czy jest to dla Ciebie problem, czy nie, zależy od tego, co próbujesz zrobić i od tego, jak zaprojektowano arkusz kalkulacyjny Numbers.

Monomeeth
źródło
Hurra! Tak, to działa - najwyraźniej określenie tabeli jest niezbędnym krokiem, który mi umknęło.
Nathaniel
(Jest to szybki hack, który zdecydowanie nie musi działać po jutrze, w przeciwnym razie zrobiłbym to właściwie zamiast twardego kodowania. Dzięki więc za szybką odpowiedź, zrobi to dużą różnicę i jest bardzo mile widziany!)
Nathaniel