Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Advanced Excel VBA Tutorial

Microsoft Excel je skriptovací jazyk Visual Basic for Applications , má mnoho nástrojov pre rozšírenie štandardnej funkcie programu Excel . Jedným z takýchto nástrojov je možnosť pridať ovládacie prvky ( napríklad zaškrtávacie políčka a tlačidlá ) priamo do tabuľky . Používanie ovládacích prvkov Visual Basic a jej schopnosť preniknúť do základných funkcií Excelu je pre efektívne výukový program pre zvyšovanie Excel pomocou jazyka Visual Basic for Applications . Projekt : Využitie jazyka Visual Basic pre výpočet Súhrny

Vykonať projekt výpočtovej súhrny pre stĺpce v tabuľke listu . Začnite tým , že otvorí Excel a vytvoriť tabuľku kdekoľvek v liste . Tabuľka spočiatku vyzerá ako tabuľka na obrázku 1.

Vyberte tabuľku , vrátane hlavičky stĺpcov , a vytvoriť si meno " myTab " tejto tabuľky . Vytvorte názov zadaním do programu Excel Názov Box , ktorý je k ľavom hornom rohu pracovnej plochy programu Excel .
Pridať jazyka Visual Basic Controls

Pridať políčok tabuľky , s každým políčko sedí nad stĺpci tabuľky . Nájdete políčka pod Developer > Vložiť > Formulár Controls . Tiež pridajte dve tlačidlá do listu . Drag and drop je z rovnakej oblasti ako zaškrtávacie políčka , na ľavej a pravej strane tabuľky myTab . Pravým tlačidlom myši kliknite na ľavé tlačidlo a zmeňte jeho text čítať " Do súhrny . " Zmeniť text pravým tlačidlom na " Odstrániť súhrny . "

Umiestnite tlačidiel a zaškrtávacích políčok , takže váš stôl vyzerá tabuľke na obrázku 2.
Písať kód

, že ste vytvorili tabuľku a jeho ovládacie prvky , budete písať kód , ktorý robí súhrny na stole . Zadajte Visual Basic IDE ( integrované vývojové prostredie ) a pridajte modul . Kliknite na Vložiť > modul . V okne kódu nového modulu zadajte nasledujúci kód programu :

Option Explicit

Public Sub doSubtotal ( )

Dim s Ako StringDim R ako RangeDim c Ako ObjectDim ar ( ) As IntegerDim Ifield Ako IntegerDim varItemsDim nChkd As Integer

ReDim ar ( 0 až 0 )

" odstrániť za predchádzajúci subtotalsRemoveSubtotals

" vytvoriť pole pole indexov ( počnúc 1 ) na súhrn

Ifield = 1nChkd = 0

" Slučka cez zaškrtávacie políčka . Ak jeden je začiarknuté , pridajte svoje pole arrayFor Každý c V ActiveSheet.CheckBoxes

( c.Value = 1 ) ThennChkd = nChkd + 1 ' pridať toto pole do poľa

ar ( UBound ( ar ) ) = iFieldReDim Zachovať ar ( 0 UBound ( AR ) + 1 ) ' pridať prvok pre ďalšie vybrané pole

End If

Ifield = Ifield + 1

ďalšie

( nChkd = 0 ) ThenMsgBox ( " Skontrolujte prosím aspoň jeden štvorček . " ) Exit SubEnd Ak

ReDim zachovať ar ( 0 UBound ( AR ) - 1 ) " Remove empty posledný elementvarItems = ar

" Páči sa aktuálny súhrn . Po prvé , nájsť rad urobiť medzisúčet na

Set r = Application.Names ( " myTab " ) RefersToRange " načítanie pomenovanú oblasť na súhrn klipart

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

End Sub

Public Sub RemoveSubtotals ( )

" Pozrite sa na predchádzajúcu medzisúčtu , pomocou skladovanie poskytovanú komentár polia v odbore názvov pre myTab ( ​​pozri Vzorce > Meno manažéra ) " Uložíme originálny , prvý stĺpec tabuľky . Je-li počiatočné stĺpec Aktuálne tabuľka líši , musíme obnoviť tabuľku na pôvodné miesto . ClipArt

Dim r As RangeDim s As StringDim nOrigCol As Integer

Set r = Application.Names ( " myTab " ) . RefersToRanges = Application.Names ( " myTab " ) . komentár

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené