Google Apps-Skript basiert auf Javascript. VBA basiert auf Visual Basic. Hardcoding ist eine Möglichkeit, aber Sie enden mit einigen funky Array und Sie sind dann beschränkt auf VBA's clunky Array-Methoden (oder deren Fehlen).
Function createChargeList()
Dim var(5)
var(0) = [{"No.", "Name", "Cooldown", "Power", "Energy Loss", "Type", "Damage Window Start"}]
var(1) = [{1.0, "AerialAce", 240.0, 55.0, 33.0, 3.0, 190.0}]
var(2) = [{2.0, "AirCutter", 270.0, 60.0, 50.0, 3.0, 180.0}]
var(3) = [{3.0, "AncientPower", 350.0, 70.0, 33.0, 6.0, 285.0}]
var(4) = [{4.0, "AquaJet", 260.0, 45.0, 33.0, 11.0, 170.0}]
var(5) = [{5.0, "AquaTail", 190.0, 50.0, 33.0, 11.0, 120.0}]
createChargeList = var
End Function
Oder Sie könnten "codieren" es ein zu Dictionary
oder Collection
oder ArrayList
(von ArrayList
s). Die Verwendung eines Dict oder ArrayList hätte einige Vorteile, da sie andere Methoden verwenden können. Wörterbuch Beispiel ist dies nicht, wie ich es eine Struktur gibt, aber es zeigt, wie Sie es tun könnten:
Function createChargeDict()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d("No.") = Array(1#, 2#, 3#, 4#, 5#)
d("Name") = Split("AerialAce,AirCutter,AncientPower,AquaJet,AquaTail", ",")
'etc...
Set createChargeDict = d
End Function
Aber es wird schwierig sein, zu „codiert“ es, wenn es mehr als eine sehr kleine Menge von Daten zB ist , per Tims Antwort (oder ähnlich durch, was ich oben getan habe), und natürlich, wenn alles ändert müssen Sie gehen und den Code bearbeiten.
Eine weitere Option wäre, die Daten als CSV-Datei oder in anderer Weise getrennt zu speichern und sie zur Laufzeit in ein Array/dict/list/collection einzulesen.
Was ich tun würde (Opinion)
Einen weiteren häufigen Ansatz - wie Sie in Ihren Kommentaren fragten nach - wäre, einfach eine Tabelle auf einem Arbeitsblatt erstellen (optional: das Arbeitsblatt so Benutzer kann verstecken‘ (um es zu vermasseln), weisen Sie Name
zu, um den Bereich der Tabelle darzustellen, und dann können Sie nur auf die .Value
Eigenschaft des Bereichs verweisen, die ein Array zurückgeben wird.
die zusätzlichen Vorteile davon ist, dass Sie alle die Worksheet
Methoden und Funktionen gegen den Bereich von Zellen (oder als Tabelle/ListObject
auf einem Blatt) können, und dann kann man viel mehr mit ihm in Bezug zu tun Filterung, Slicing, Finden von Elementen, Matching/Indizierung, etc., und es ist auch einfacher zu aktualisieren.
Dies sieht aus wie Zeilen aus einer Text-/Flat-Datei und wäre wahrscheinlich in einer anderen Struktur als ein Array für VBA-Zwecke besser organisiert. –
@DavidZemens Würden Sie vielleicht vorschlagen, eine Tabelle mit all diesen Elementen zu erstellen und dann die Tabelle selbst als Variable zu bezeichnen? Ich bin mir nicht sicher, ob das funktionieren würde, aber ich hielt das für eine mögliche Lösung. Es gibt 12 Spalten und ungefähr 251 Gesamtzeilen (Kopfzeilen und Daten) mit mehr Zeilen, die ich später hinzufügen könnte. Das von mir bereitgestellte Beispiel war eine sehr kleine Probe des Objekts. – aistreet