Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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
Copyright © počítačové znalosti Všetky práva vyhradené