2016-05-11 6 views
1

Gegeben eine Tabelle (n x m) Wie kann ich alles in VBA auswählen?Excel VBA - Bereich wählen Sie alle Zeilen und Spalten, die nicht leer sind

Hinweis Ich möchte vielleicht alles in einer Variablen speichern, also durch auswählen Ich meine nicht markieren, sondern alles greifen. Das Bild ist nur ein Beispiel dafür, was Daten Ich mag

enter image description here

Sub SelectAll() 

ActiveWorkbook.Sheets("instance").Select 


ActiveCell.CurrentRegion.Select 

End Sub 

ich entschuldige mich, wenn diese Frage vor gefragt wurde, habe ich nicht auf dieser Seite eine Lösung so ein Moderator diese Frage schließen kann finden konnte oder Verknüpfen Sie eine beantwortete Lösung.

+0

Wenn Sie sagen, „nicht leer ist“ Bitte klären, was Sie meinen. Wenn in der Tabelle (n x m) Leerzeichen enthalten sind, sollten sie ausgewählt werden? Suchen Sie nur nach der letzten Spalte und der letzten Zeile mit Daten? Und beginnt der Tisch immer in Zelle A1? – psubsee2003

+0

das zeigte mir Google beim ersten Treffer http://www.mrexcel.com/forum/excel-questions/353392-visual-basic-applications-select-only-cells-value.html die letzte Antwort auf Seite 1 scheint, was Sie wollen – lauw

+0

@ psubse2003 Ich bin auf der Suche nach Bereich A1: -B5, also die ganze Tabelle. Auch wenn einige Felder leer sind –

Antwort

1

Sie können einen 2D-Array aus dem Bereich erstellen:

Sub SelectAll() 

    Dim myTable As Variant 

    myTable = Range("A1").CurrentRegion.Value 

    '// myTable is now a 2D-Array that you can work with 
    '// by using row/column indeces like so: 

    Debug.Print myTable(1, 1) '// A1 value 
    Debug.Print myTable(2, 1) '// A2 value 
    Debug.Print myTable(3, 1) '// A3 value 

    Debug.Print myTable(1, 2) '// B1 value 
    Debug.Print myTable(2, 2) '// B2 value 
    Debug.Print myTable(3, 2) '// B3 value 

End Sub 
+0

Ich denke, ich habe meine Frage schlecht formuliert. Ich habe eine Tabelle in einer leeren Tabelle und möchte die Tabelle in ein 2D-Array einfügen. Wenn die Tabelle 1000 Zeilen enthält, kann ich diesen Code nicht verwenden –

+0

Warum können Sie diesen Code nicht verwenden? –

+0

Angenommen, ich möchte den Datenbereich kopieren oder die Tabelle drehen. Woher soll ich wissen, ob der Tisch bei myTable (4,5) oder myTable (400,500) endet? –

Verwandte Themen