L'uso di VBA per programmare Excel non è così popolare come una volta. Tuttavia, ci sono ancora molti programmatori che lo preferiscono quando lavorano con Excel. Se sei una di quelle persone, questo articolo fa per te.
Copia di una riga in Excel VBA è il tipo di cosa per cui Excel VBA è davvero utile. Ad esempio, potresti voler avere un file di tutte le tue ricevute con data, account, categoria, fornitore, prodotto / servizio e costo sono entrati in una riga alla volta, man mano che si verificano: un'istanza di contabilità in evoluzione anziché contabilità statica. Per fare ciò, devi essere in grado di copiare una riga da un foglio di lavoro a un altro.
Un programma VBA di Excel di esempio che copia una riga da un foglio di lavoro a un altro, utilizzando solo tre colonne per semplicità, contiene:
- Una colonna alfa per testo
- Una colonna numerica: viene creata una somma automatica sul foglio di lavoro di destinazione
- Una colonna di data: la data e l'ora correnti vengono inserite automaticamente
Considerazioni per la scrittura del codice VBA di Excel
Per attivare un evento che copia la riga, scegli lo standard: un controllo modulo pulsante. In Excel, fai clic su Inserisci nella scheda Sviluppatore. Quindi, seleziona il controllo Modulo pulsante e disegna il pulsante nel punto desiderato. Excel visualizza automaticamente una finestra di dialogo per darti la possibilità di selezionare a macro attivato dall'evento clic del pulsante o per crearne uno nuovo.
Esistono diversi modi per trovare l'ultima riga nel foglio di lavoro di destinazione in modo che il programma possa copiare una riga in fondo. Questo esempio sceglie di mantenere il numero dell'ultima riga nel foglio di lavoro. Per mantenere il numero dell'ultima riga, è necessario memorizzare quel numero da qualche parte. Questo potrebbe essere un problema perché l'utente potrebbe modificare o eliminare il numero. Per aggirare questo, posizionalo nella cella direttamente sotto il pulsante del modulo. In questo modo, è inaccessibile all'utente. (La cosa più semplice da fare è inserire un valore nella cella e quindi spostare il pulsante su di esso.)
Codice per copiare una riga usando Excel VBA
Sottotitolo Add_The_Line () Dim currentRow come fogli interi ("Sheet1"). Selezionare currentRow = Range ("C2"). Value Rows (7). Selezionare Selezione. Copia fogli ("Foglio2"). Seleziona righe (file corrente). Seleziona Foglio attivo. Incolla Dim theDate As Date theDate = Now () Cells (currentRow, 4) .Value = CStr (theDate) Cells (currentRow + 1, 3). Attiva Dim rTotalCell As Range Set rTotalCell = _ Sheets ("Sheet2"). Cells ( Righe. Count, "C"). End (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Somma _ (intervallo ("C7", rTotalCell. Offset (-1, 0))) Fogli ("Foglio1"). Intervallo ("C2"). Valore = CurrentRow + 1 End Sub
Questo codice utilizza xlUp, un "numero magico" o più tecnicamente una costante enumerata, riconosciuta dal metodo End. Offset (1,0) si sposta semplicemente in alto di una riga nella stessa colonna, quindi l'effetto netto è selezionare l'ultima cella nella colonna C.
In parole, la dichiarazione dice:
- Vai all'ultima cella nella colonna C (equivalente a Fine + Freccia giù).
- Quindi, torna all'ultima cella inutilizzata (equivalente alla Fine + Freccia su).
- Quindi, vai su un'altra cella.
L'ultima istruzione aggiorna la posizione dell'ultima riga.
VBA è probabilmente più difficile di VB.NET perché devi conoscere oggetti VBA sia VB che Excel. L'uso di xlUP è un buon esempio del tipo di conoscenza specializzata che è fondamentale per poter scrivere macro VBA senza cercare tre cose diverse per ogni istruzione che codifichi. Microsoft ha fatto grandi progressi nell'aggiornamento dell'editor di Visual Studio per aiutarti a capire la sintassi corretta, ma l'editor VBA non è cambiato molto.