linguaggio di scripting di Microsoft Excel , Visual Basic, Applications Edition , ha molti strumenti per estendere le funzionalità predefinite di Excel . Uno di questi strumenti è la possibilità di aggiungere i controlli (come ad esempio le caselle di controllo e pulsanti ) direttamente su fogli di calcolo . Utilizzando i controlli di Visual Basic e la sua capacità di attingere a funzioni fondamentali di Excel fa per una esercitazione efficace nel migliorare Excel tramite Visual Basic, Applications Edition . Progetto : utilizzare Visual Basic per calcolare subtotali
intraprendere un progetto di subtotali di calcolo per le colonne di una tabella di foglio di lavoro . Inizio con l'apertura di Excel e la creazione di una tabella in qualsiasi punto del foglio di lavoro . La tabella inizialmente si presenta come la tabella in Figura 1 .
Selezionare la tabella , comprese le intestazioni di colonna , e creare il nome di " mytab " per questa tabella . Creare il nome inserendolo nella casella Nome di Excel , che è verso l'angolo superiore sinistro dello spazio di lavoro di Excel .
Aggiungere controlli di Visual Basic
Aggiungi caselle di controllo per la tavola , con ogni casella seduto sopra una colonna della tabella . Potete trovare le caselle sotto sviluppatore> Inserisci> Controlli per formulario . Inoltre, aggiungere due pulsanti per il foglio di lavoro . Trascinarli dalla stessa zona , come le caselle di controllo , a sinistra ea destra della tabella mytab . Fare clic destro sul pulsante sinistro e cambiare il suo testo da leggere " subtotali fare". Modificare il testo del pulsante destro per "Rimuovi subtotali . "
Posizione dei pulsanti e caselle di controllo in modo che il tavolo si presenta come la tabella in Figura 2 .
Scrivi il codice
Ora che avete progettato il tavolo ed i suoi controlli , si scriverà il codice che fa i subtotali sul tavolo . Inserisci il Visual Basic ( ambiente di sviluppo integrato ) e aggiungere un modulo . Fare clic su Inserisci > Modulo . Nella finestra del codice del nuovo modulo , inserire il codice del programma :
Option Explicit
Public Sub doSubtotal ( ) per
Dim s As StringDim r Come RangeDim c Come ObjectDim ar ( ) Come IntegerDim IFIELD Come IntegerDim varItemsDim nChkd As Integer
ReDim ar ( 0 a 0 ) per
'Rimuovi subtotalsRemoveSubtotals precedenti
' creare l'array di campi di indici (a partire dal 1 ) al subtotale
IFIELD = 1nChkd = 0
'Loop attraverso caselle di controllo . Se si è selezionata , aggiungere il suo campo di arrayFor Ogni c In ActiveSheet.CheckBoxes
( c.Value = 1) = ThennChkd nChkd + 1 ' aggiungere questo campo per matrice
ar ( UBound ( ar ) ) = iFieldReDim Preserve ar ( 0 To UBound ( ar ) + 1) ' aggiunge elemento per la prossima selezionata campo
End If
IFIELD = IFIELD + 1
Avanti
( nChkd = 0 ) ThenMsgBox ( "Si prega di controllare almeno una casella . " ) Exit SubEnd Se
ReDim Preserve ar ( 0 To UBound ( ar ) - 1) 'Rimuovi vuoto ultimi elementvarItems = ar
' fare effettivo subtotale. In primo luogo , trovare la gamma di fare subtotale su
Set r = Application.Names ( " mytab " ) RefersToRange ' recuperare l'intervallo denominato di subtotale
GroupBy r.Subtotal : . = 1 , Funzione : = xlSum , TotalList : = varItems , SummaryBelowData : = xlSummaryBelow
End Sub