Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Software >> Microsoft Access >> Content
Geavanceerde Excel VBA Tutorial
Microsoft Excel 's scripttaal , Visual Basic for Applications , heeft vele tools voor het verlengen van Excel's standaard mogelijkheden. Een dergelijk instrument is de mogelijkheid om controles ( zoals gewenste en knoppen ) direct op spreadsheets voegen . Met behulp van Visual Basic controles en haar vermogen aan te boren in Excel's kernfuncties zorgt voor een effectieve les in het verbeteren van Excel via Visual Basic for Applications . Project : Gebruik Visual Basic om subtotalen

Bereken Onderneem een project van computergebruik subtotalen voor de kolommen in een werkblad tafel. Begin met het openen van Excel en het creëren van overal in het werkblad een tabel . De tabel ziet er in eerste instantie als de tabel in afbeelding 1 .

Selecteer de tabel , inclusief de kolomkoppen , en maak de naam " myTab " voor deze tabel . Maak de naam door in Excel 's Name Box , dat is de richting van de linkerbovenhoek van het Excel- werkruimte .
In Visual Basic Controls

selectievakjes In de tabel , met elk vakje zit boven een kolom tabel . U kunt de selectievakjes vinden onder ontwikkelaar> Invoegen> Formulier Controls . Ook, voeg twee knoppen om het werkblad . Drag en drop ze uit hetzelfde gebied als de selectievakjes , naar links en rechts van de myTab tafel . Klik met de rechtermuisknop op de linker knop en verander de tekst om te lezen " Do Subtotalen . " Verander de tekst van de rechter knop om " subtotalen verwijderen . "

Position of the knoppen en selectievakjes , zodat uw tafel lijkt op de tabel in afbeelding 2 .
Schrijf de Code

Nu dat je de tafel en zijn controles hebben ontworpen , zul je de code die de subtotalen op tafel doet schrijven . Voer de Visual Basic IDE ( Integrated Development Environment ) en voeg een Module . Klik op Invoegen > Module . In de code -venster van de nieuwe module , voert u dit programma code :

Option
Expliciete

Public Sub doSubtotal ( )

Dim s
Zoals StringDim r Als RangeDim c Als ObjectDim ar ( ) Als IntegerDim Ifield Zoals IntegerDim varItemsDim nChkd als Geheel

ReDim ar
( 0 To 0 )

' verwijder voor subtotalsRemoveSubtotals

' de reeks van velden indices maken ( vanaf 1 ) tot subtotaal

ifield = 1nChkd = 0

' Loop door checkboxes . Als er een is aangevinkt , voegt haar veld om elke c In ActiveSheet.CheckBoxes

arrayFor Als ( c.Value = 1 ) ThennChkd = nChkd + 1 ' toe te voegen dit veld om matrix

ar
( UBound ( ar ) ) = iFieldReDim Preserve ar ( 0 To UBound ( ar ) + 1 ) ' toe te voegen element voor volgend geselecteerde veld

End
Als

ifield = ifield + 1


Volgende

Als ( nChkd = 0 ) ThenMsgBox ( " Gelieve ten minste een vak . " ) Exit SubEnd Als

ReDim Preserve ar
( 0 To UBound ( ar ) - 1 ) ' Verwijder lege laatste elementvarItems = ar

' Do werkelijke subtotaal . Zoek eerst het bereik te subtotaal te doen op

Set
r = Application.Names ( " myTab " ) RefersToRange ' halen het benoemde bereik te subtotaal

r.Subtotal GroupBy
: . = 1 , Functie : = xlSum , TotalList : = varItems , SummaryBelowData : = xlSummaryBelow

End Sub

Public Sub RemoveSubtotals ( )

' Controleer voorafgaand subtotaal , met behulp van opslag die door de reactie veld in de Namespace voor myTab ( ​​zie Formules > Naam manager ) " We slaan originele , eerste kolom van de tabel. Als beginnend column huidige tabel verschilt , moeten we tafel herstellen naar oorspronkelijke locatie .

Dim r Zoals RangeDim s Zoals StringDim nOrigCol
als Geheel

Set
r = Application.Names ( " myTab " ) . RefersToRanges = Application.Names ( " myTab " ) . Reageer

' No comment betekent geen voorafgaande run , dus geen verwijdering van voorafgaande subtotaal , of aanpassing van de originele reeks , is nodig .

' Maar , sparen beginnen kolom van de tabel voor de volgende oproep om dit function.If ( s = " " ) ThenApplication.Names ( " myTab " ) Reactie = r.ColumnExit SubEnd Als

Application.Range
( . " a1 : xfd65536 . " ) RemoveSubtotal

' Adjust gamma : verwijderen van een kolom als men was addednOrigCol = CInt ( s ) Als ( nOrigCol < r.Column ) Thenr.Previous.EntireColumn.Delete

End of als

End Sub
Voer het Programma

Terug naar het Excel-werkblad dat het myTab tafel heeft . De knoppen toewijzen aan de macro's die u zojuist heeft geschreven. Klik met de rechtermuisknop de " Do Subtotalen " knop en selecteer " Macro toewijzen . " In het dialoogvenster dat verschijnt , selecteert u de functie " doSubtotal " , dat deel uitmaakt van de code die u zojuist heeft geschreven. Sluit het dialoogvenster door te klikken op " OK" en wijs de andere macro- functie die u schreef , RemoveSubtotals , aan de andere knop .

Run je programma op basis van een combinatie van de selectievakjes en te klikken op de knop doen subtotalen . Wis het subtotaal door op de andere knop .

Previous: Next:
  Microsoft Access
·Hoe maak je een dakhelling zoe…
·Hoe gegevens toevoegen aan een…
·Hoe kan ik Excel gebruiken als…
·Hoe je Excel-gegevens importer…
·Hoe je Tab Namen gebruiken als…
·Hoe te openen MS Word-bestande…
·Hoe kan ik een Excel-werkblad …
·Hoe te scrollen inschakelen in…
·Hoe te Axis Bar Graphs Maak in…
  Related Articles
Microsoft Word & Excel software te gebru…
Hoe Word- bestanden converteren naar Exc…
Hoe naar MS Excel converteren naar PHP 
Hoe maak je een Excel- document converte…
Hoe maak je een gescand document omzette…
Hoe kan ik Excel Informatie converteren …
Hoe kan ik een Excel 2007- bestand conve…
Hoe kan ik een Word- Label document conv…
Hoe maak je een nieuw Word- document mak…
  Software Articles
·Hoe kan ik iTunes gebruiken 8 
·Hoe te branden SVCD naar DVD met Nero 
·Adobe Encore Vs . Premiere 
·Photoshop Styles voor Logos 
·Hoe te openen een Microsoft Excel- docum…
·Hoe de Wand in Bewerken in Pixlr Gebruik…
·Hoe maak je een dinosaurus in Photoshop 
·Wat is Microsoft SQL Server Express ? 
·Hoe een heterogene bestand SSIS 
Copyright © Computer Kennis http://www.nldit.com