ListObjects VBA - Guida alle tabelle ListObject Excel in Excel VBA

Cosa sono ListObjects in VBA?

In una tabella normalmente ciò che vediamo è un set di dati, ma nella terminologia VBA ce ne sono molti di più, ad esempio c'è un intervallo dell'intervallo dell'elenco di dati totale, la colonna è nota come colonna dell'elenco e la riga è nota come riga dell'elenco e così via , quindi per accedere a queste proprietà abbiamo una funzione incorporata nota come Listobjects e che viene utilizzata con la funzione del foglio di lavoro.

VBA ListObject è un modo per fare riferimento alle tabelle Excel durante la scrittura del codice VBA. Usando VBA LISTOBJECTS, possiamo creare, eliminare tabelle e totalmente possiamo giocare con le tabelle Excel nel codice VBA. Le tabelle di Excel sono complicate, principianti e, anche in una certa misura, gli utenti di livello intermedio trovano difficile lavorare con le tabelle. Poiché questo articolo parla del riferimento alle tabelle Excel nella codifica VBA, è meglio che tu abbia una buona conoscenza delle tabelle in Excel.

Quando i dati vengono convertiti in tabelle, non lavoriamo più con un intervallo di celle. Piuttosto, dobbiamo lavorare con gli intervalli di tabelle, quindi in questo articolo ti mostreremo come lavorare con le tabelle Excel per scrivere codici VBA in modo efficiente.

Crea formato tabella utilizzando ListObjects in Excel VBA

Ad esempio, guarda i dati di Excel di seguito.

Utilizzando il codice ListObject di VBA, creeremo un formato tabella per questi dati.

  • Per questi dati prima, dobbiamo trovare qual è l'ultima riga e colonna utilizzata, quindi definisci due variabili per trovarlo.

Codice:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Per trovare l'ultima riga e colonna utilizzate, utilizzare il codice seguente.

Codice:

LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Ora definisci un'altra variabile per contenere il riferimento dei dati.

Codice:

Dim Rng As Range
  • Ora imposta il riferimento a questa variabile utilizzando il codice seguente.

Codice:

Imposta Rng = Celle (1, 1). Ridimensiona (LR, LC)

Ora dobbiamo usare il metodo VBA "ListObject.Add" per creare una tabella, e di seguito è la sintassi della stessa.

ListObject.Add (Source, XlListObjectHasHeaders, Destination, TableStyleName)

Origine: questo non è niente per quale intervallo di celle stiamo inserendo la tabella. Quindi possiamo fornire due argomenti qui, ovvero "xlSrcRange" e "xlSrcExternal".

XlListObjectHasHeaders: se la tabella che inserisce i dati ha intestazioni o meno. In caso affermativo , possiamo fornire "xlYes". In caso contrario, possiamo fornire "xlNo".

Destinazione: questo non è altro che la nostra gamma di dati.

Stile tabella: se desideri applicare qualsiasi stile di tabella, possiamo fornire stili.

  • Ok, ora nel foglio attivo, stiamo creando la tabella, quindi il codice seguente creerebbe una tabella per noi.

Codice:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Dopodiché, dobbiamo dare un nome a questa tabella.

Codice:

Ws.ListObjects (1) .name = "EmpTable"
  • Di seguito è riportato il codice completo come riferimento.

Codice:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Set Rng = Cells (1, 1) .Resize (LR, LC) Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, eseguiamo il codice e vediamo la magia.

Ha creato la tabella con i dati menzionati e ha assegnato il nome della tabella come "EmpTable".

Formattazione di tabelle Excel con ListObjects VBA

Una volta creata la tabella Excel, possiamo lavorare con le tabelle utilizzando la raccolta ListObject di VBA.

  • Innanzitutto, definisci la variabile come "ListObject".

Codice:

Sub List_Objects_Example2 () Dim MyTable As ListObject End Sub
  • Ora imposta il riferimento a questa variabile utilizzando il nome della tabella.

Codice:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub

Ora la variabile "MyTable" contiene il riferimento per la tabella "EmpTable".

  • Immettere il nome della variabile e inserire un punto per visualizzare le proprietà e i metodi di VBA ListObject.

Ad esempio, se vogliamo selezionare l'intera tabella, allora dobbiamo usare l'oggetto "Range", e sotto questo, dobbiamo usare il metodo "Select".

Codice:

MyTable.Range.Select

Questo selezionerebbe l'intera tabella di dati, inclusa l'intestazione.

  • Se desideri selezionare solo il contenuto della tabella senza intestazioni, dobbiamo utilizzare "DataBodyRange".

Codice:

MyTable.DataBodyRange.Select

In questo modo, possiamo giocare con i tavoli.

  • Di seguito è riportato l'elenco dei codici attività per il tuo riferimento.

Codice:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'To Select data range without headers MyTable.Range.Select' To Select data range with headers MyTable.HeaderRowRange.Select 'To Seleziona le righe di intestazione della tabella MyTable.ListColumns (2) .Range.Select 'Per selezionare la colonna 2 inclusa l'intestazione MyTable.ListColumns (2) .DataBodyRange.Select' Per selezionare la colonna 2 senza intestazione End Sub

In questo modo, possiamo utilizzare la raccolta "ListObject" per giocare con le tabelle Excel.

Cose da ricordare

  • VBA ListObject è la raccolta di oggetti per fare riferimento a tabelle Excel.
  • Per accedere prima alla raccolta ListObject, dobbiamo specificare a quale foglio di lavoro ci riferiamo.

Articoli interessanti...