Ich bin relativ neu im Allgemeinen Codierung, aber hier geht:Excel: Tabelle nicht Ändern der Größe, wenn VBA
Ich habe eine riesige Liste von membershipdata, die ich zu organisieren versuchen. Dies wird wöchentlich erfolgen, da die Daten variabel sind. Daher versuche ich, die Arbeit ein wenig zu automatisieren.
Ich habe geschrieben (mit Hilfe) einen Code, der eine ganze Reihe von Daten kopiert, wenn eine bestimmte Zelle einen bestimmten Text enthält, und fügt es in einem anderen Blatt unter einer vorhandenen Tabelle ein.
Wenn Sie dies jedoch mit einem Makro tun, ändert die Tabelle nicht entsprechend, wie es bei Verwendung von Strg + C und Strg + v tun würde. I.e. Wenn es in dieser Woche mehr Daten gibt als zuletzt, ist die Tabelle nicht groß genug, und daher sortieren die Sortieroptionen in der Tabelle nicht alle Daten.
ich in der Lage, die Tabelle mit diesem Code, um die Größe:
Sub sortOK()
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = Worksheets("OK")
Set StartCell = Range("A1")
Worksheets("OK").UsedRange
LastRow = StartCell.SpecialCells(xlCellTypeLastCell).Row
LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
sht.ListObjects("OK").Resize Range(StartCell, sht.Cells(LastRow, LastColumn))
End Sub
Dies funktioniert gut, aber es funktioniert nur, wenn ich dieses spezielle Blatt bin sehen, ich es von einem anderen Blatt arbeiten kann nicht. Wie kann ich das tun?
Ich möchte auch die gleiche Operation in einem Schritt auf vier anderen Listen, jeweils in einer eigenen Tabelle.
Ich habe dieses Problem fast den ganzen Tag festgefahren, und mein Kopf wird explodieren!
Vielen Dank im Voraus.
* Ich habe (mit Hilfe) einen Code geschrieben, der eine ganze Reihe von Daten kopiert, wenn eine bestimmte Zelle einen bestimmten Text enthält, und sie in ein anderes Blatt unter einer vorhandenen Tabelle einfügt * Das ist nicht der Code, den Sie uns gezeigt haben. Zeig uns diesen Code. –
Lesen Sie [this] (https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba), um Ihre Bereichsobjekte vollständig zu qualifizieren. Verwenden Sie nicht 'Select' oder' Activate'. Qualifizieren Sie Ihre Bereiche richtig und Sie können unabhängig davon, welches Blatt zur Laufzeit aktiv ist, ein Makro ausführen. –
Haben Sie immer Option explizit an der Spitze Ihres Codes für Starter. Verweisen Sie vollständig auf Ihre Bereichsobjekte einschließlich der von Ihnen verwendeten Arbeitsmappe. Außerdem bin ich überrascht, dass Sie keinen Kompilierungsfehler mit Arbeitsblättern bekommen ("OK"). UsedRange, da Sie dies nicht auf eine Variable setzen. – QHarr