Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Použite Visual Basic triediť malý stolík . Začnite zadaním nasledujúcej tabuľke v bunkách G8 , aby H11 v liste 1 :
Meno zákazníka , účet balanceZephyr Veterné Stroje , 5Arondale stoly , - 10Bubble Gumballs , 30
Po zadaní údajov, vyberte ho a spustiť záznam makra ( Developer > Record Macro ) . Názov makra MySort . Triediť ( Data > Zoradiť AZ ) vybrané údaje o prvom stĺpci , a zastaviť záznam makra .
Replay Makro
Skúste pomocou makra sa uchýliť iný rozsah : skopírovať a vložiť tabuľku zákazníka do inej oblasti listu , a vyberte novú radu . Replay makro ( Developer > Makrá > MySort ) , a všimnite si , efekt : dátumu nebola zoradené . Pozrite sa na problém v kóde jazyka Visual Basic vytvorená makrá záznam . Začnite tým , že prejdete do kódu : . Stlačením Alt - F8 , vyberte MySort makro a potom kliknite na tlačidlo Upraviť
Vnútri funkcie MySort , všimnite si toto vyhlásenie : Spojené
ActiveWorkbook.Worksheets ( " Hárok1 " ) Sort.SortFields.Add Legenda : . = Range ( " G8 " ) ...
a údajov o pár riadkov po :
SetRange Range ( " . C9 : D12 " )
Obe vyhlásenia sú zdrojom problému , sú dôvody , prečo MySort zlyhá triediť zvolený rozsah : Visual Basic makrá rekordér pevne rozsah dát ( " C9 : D12 " a " G8 " ) triediť . Vašou úlohou je nahradiť napevno rozsahy , aby makro sort aktuálny výber
použite pre výber nehnuteľnosti
Konkrétne sa jedná o parameter Key : . = Rozsah ( " G8 " ) hovorí , Excel zoradíte tabuľku zákazníka na základe " zákazníka " stĺpci , ktorý sa začína v bunke G8 . Ak chcete nahradiť , že pôvodné " zákazník " stĺpec s jedným vnútri aktuálne vybratého textu , pozrite sa do majetku výberu objektu Application . Táto vlastnosť sa týka rozsahu aktuálne vybraných buniek . Vymeňte Legenda : = Range ( " G8 " ) sa toto : Legenda : = k Budete definovať k vo chvíli
ďalšie pevne rozsahu nahradiť vyskytuje niekoľko vyhlásení dole : .. SetRange Range ( " G8 : H11 " ) . Metóda . SetRange indikuje Excel kompletný rad , ktorý chcete zoradiť . Vymeňte SetRange Range ( " G8 : H11 " ) . Se takto : . " . SetRange r"
premenné r, rovnako ako k ( EY ) premenné ste práve zadali , bude pochádzať z majetku výber . Prejsť na začiatok makro definície a zadajte tieto riadky :
Dim R , K ako rozsah
Set r = Application.SelectionSet k = r.Columns ( 1 )
Prvý priradenie sada definuje rozsah buniek potrebných pre metódu SetRange - . celý výber . Druhá úloha stanovuje rozsah potrebných pre kľúč radenia na prvý stĺpec vo výbere . Môžete radiť druhom stĺpci zmenou " 1 " na " 2 " .
Test Opravil Makro
korekcia kód je kompletný . Otestujte ho vracať do listu , výberom tabuľky zákazníka - tam , kde ju umiestniť na list - a beží MySort . Kopírovať tabuľku do novej sady buniek , vyberte bunky , a spustiť MySort na ne znova . Všimnite si , že druh teraz pracuje správne .
Copyright © počítačové znalosti Všetky práva vyhradené