Ich habe How can I send an HTTP POST request to a server from Excel using VBA?Wie kann ich JSON von einem HTTP-Endpunkt aus in Excel auf MacOS abrufen und analysieren?
und the MacOS-friendly response gesehen, die beschreibt, wie Daten von einem HTTP-Endpunkt abzurufen Querytables verwenden. Es zeigt, wie eine einzelne Zeichenfolge abgerufen und in eine Zelle eingefügt wird.
Alles gut. Jetzt möchte ich mehr als einen einzelnen Wert abrufen. Es ist eine große JSON-Zeichenfolge, und ich möchte es in Excel VBA nachbearbeiten, bevor Sie eine oder mehrere Zellen auffüllen.
Wie ist das möglich?
Ich kann mir eine Möglichkeit vorstellen - platzieren Sie das Ergebnis der QueryTables-Sache in eine verborgene Zelle, und bearbeiten Sie anschließend die versteckte Zelle, um andere Zellen zu füllen. Es gibt ein paar JSON-Bibliotheken für VBA, die ich noch nicht ausgewertet habe.
Aber das scheint ziemlich hacky. Wirklich möchte ich mich nicht darauf verlassen, den JSON als Wert in einer Zelle zu speichern. Ich möchte es nur in einer Variablen in meinem VBA-Code speichern. So als ob ich CreateObject ("MSXML2.ServerXMLHTTP") verwenden würde. (NB: CreateObject() ist nicht verfügbar in Excel auf MacOS).
Und ich verstehe, dass die beste Antwort hier sein könnte: Holen Sie sich einen Windows-Rechner, wenn Sie Anwendungen in Excel ausführen möchten.
Ya, ich weiß, dass ich QueryTables verwenden kann. Aber ich habe gegooglet und ich sehe keine Möglichkeit, die Ausgabe von QueryTable in irgendwas * außer * einer Zelle zu speichern. Das fühlt sich ziemlich hackig an, weshalb ich nach einer Alternative gefragt habe. Wenn Sie eine Möglichkeit kennen, den Wert in einer Variablen zu speichern, werde ich es zu schätzen wissen, wenn Sie das beschreiben können oder mich auf den Dokument-Link verweisen können. Auch die 'Microsoft.XMLHTTP'-Sache wird in Excel auf MacOS nicht funktionieren. – Cheeso
Uff, das wird hart werden. Ich denke, du hast recht. QueryTable speichert seinen Inhalt nur in einer Zelle (das ist eigentlich der springende Punkt der Funktion, da es nur eine Tabelle mit einer verbundenen Datenquelle ist). Persönlich kenne ich nur den obigen Weg oder mit einer DLL, aber das sind auch Windows. Dennoch ist Excel so konzipiert, dass es unter Windows verwendet werden kann. Wenn Sie alle Funktionen wünschen, verwenden Sie Bootcamp. Eine andere Möglichkeit wäre, ein Werkzeug wie curl zu verwenden und per Shell auszuführen. – mffap
was für eine wirklich tolle Methode. Weißt du, ob das Ergebnis der Funktion jemals zu groß sein könnte, um zurückzukehren? eine zu große Schnur? – mango