Ich frage mich, ob es eine schnellere Möglichkeit gibt, eine Liste von Werten in ein Tabellenobjekt einzufügen. Die Methode, die ich bin mit geht so:, wie Array-Liste in Tabelle einfügen?
1) Löschen Sie die alten Daten aus der Tabelle
2) in neue Datumswerte in die Tabelle finden und die Tabelle lassen Formeln automatisch ausfüllen.
Das Problem ist jetzt, dass dieser Prozess unglaublich langsam ist, da ich über 7 Tabellen und 4k + Daten zu bevölkern habe.
Normalerweise, wenn es nur die Werte einfügt, funktioniert Excel unglaublich schnell. Aber wenn es um Tabellenobjekte geht, wird es aus irgendeinem Grund viel langsamer.
Ich denke, es gibt eine Möglichkeit, dies viel schneller zu tun, indem Sie das Tabellenobjekt manipulieren, aber bisher hatte ich kein Glück.
*table1
1 2 3 4 5 6
A Date 1D 2D 3D 4D 5D
B 1/1/2016 Formula Formula Formula Formula Formula
C 2/1/2016 Formula Formula Formula Formula Formula
D 3/1/2016 Formula Formula Formula Formula Formula
E 4/1/2016 Formula Formula Formula Formula Formula
F 5/1/2016 Formula Formula Formula Formula Formula
G 6/1/2016 Formula Formula Formula Formula Formula
H 7/1/2016 Formula Formula Formula Formula Formula
Dim ws(), datelist() As Variant
For i = 1 To UBound(ws)
For j = 1 To UBound(datelist)
Sheets(CStr(ws(i))).Cells(j + 1, 1) = datelist(j)
Next j
Next i
* ws() bezieht sich auf Array, in dem i-Arbeitsblatt Namen speichern
* datelist() in die Zellen einzufügen i zu den Terminen wollen verweist.
nicht sicher, ob meine Beschreibung des Problems klar genug ist.
Vielleicht möchten Sie Auto Berechnung und screenupdate vor dieser alten Daten Entfernung und neue Daten hinzufügen deaktivieren. Welche Art von Daten enthält "datelist (j)"? Wenn Sie wirklich Formeln verwenden, können Sie die Formel (** FormulaR1C1 ** style) nach allen hinzugefügten Daten in die Tabellenspalte einfügen. – PatricK
Dieser obige Prozess ist Teil eines größeren Unterprogramms, die üblichen Berechnungen, Warnungen und Bildschirmaktualisierungen wurden bereits deaktiviert. Die Werte in der Datumsliste (j) sind Datumsangaben, sie werden jedoch als Zeichenfolge gespeichert. Die in den Tabellen automatisch aufgefüllten Formeln sind ziemlich lang und beziehen sich auf verschiedene Dinge für verschiedene Tabellen. Daher würde ich lieber die Auto-Populate-Funktion nutzen, anstatt mehrere Subroutinen zum Auffüllen oder Berechnen der Werte zu codieren. – adam
Erledigt eine schnelle Suche, hilft das? https://stackoverflow.com/questions/19300555/paste-vba-array –