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

Ako môžete vytvoriť makro v Exceli, ktorý šetrí zošit príjmu a potom vytvára nový každý týždeň?

`` `VBA

Sub WeeklyinComeMandage ()

„Deklarujte premenné

Dim WB ako zošit

Dim WS ako pracovný hárok

Dim Filepath ako reťazec

Dim súborové meno ako reťazec

Stlmte newFileName ako reťazec

Stmúcny wekupstartdate ako dátum

Dimový víkend ako dátum

„Nastavte dátum začiatku týždňa (môžete ho upraviť na základe dňa začiatku týždňa, napr. Nedeľa alebo pondelok)

WeekeStartDate =Dátum - dni (dátum, vbmonday) + 1 'Toto nastaví deň začiatku do pondelka

„Nastavte dátum ukončenia týždňa

WeekendDate =WeekeStartDate + 6

„Nastavte cestu do priečinka, kde chcete súbory uložiť. Upravte to na požadovaný priečinok

FilePath ="C:\ Path \ TO \ Your \ IncerSfolder \" '<--- Dôležité: Zmeňte to!

„Skontrolujte, či existuje priečinok a ak nie, vytvorte ho

Ak DIR (Filepath, vbdirectory) ="" potom

Mkdir Filepath

Skončiť

„Nastavte názov základného súboru (napr.„ Príjem “)

Filename =„príjem“

'Nastavte názov nového súboru (napr., "Incers_2023-10-23_to_2023-10-29.xlsx")

NewFileName =filename &"_" &Format (WeekStartDate, "Yyyy-Mm-dd") &"_to_" &Format (WeekendDate, "Yyyy-Mm-dd") &".xlsx"

„Vytvorte celú cestu k súboru

Filepath =Filepath a newFileName

' ***

„Uložte aktuálny zošit s týždenným názvom súboru súboru

' ***

„Získajte odkaz na aktuálny zošit

SET WB =ThisWorkbook

„Zakázať aktualizáciu obrazovky, aby ste urýchlili proces

Application.ScreenUpDating =false

„Uložte zošit

WB.Saveas FilePath, FileFormat:=XLOPENXMLWORWBOOK 'Použite XLOPENXMLWORKBOOK pre .xlsx formát

' ***

„Vytvorte nový zošit (na základe aktuálnej alebo šablóny)

' ***

„Možnosť 1:Vytvorte nový prázdny zošit

'Zošity.Add

„Možnosť 2:Vytvorte nový zošit na základe štruktúry existujúcej zošitu (Copy IT)

Set wb =workbooks.add (thworkbook.fullname) 'thisworkbook.fullname používa súčasný zošit ako šablónu

'Možnosť 3:Vytvoriť zo súboru špecifického šablóny (ak máte nastavenie šablóny)

'Dim TemplateFilePath ako reťazec

'TemplateFilePath ="C:\ Path \ TO \ Your \ Template \ indecetemplate.xltx"' Upravte to na cestu svojej šablóny

'Set wb =workbooks.add (template:=TemplateFilePath)

'Voliteľné:Premenujte prvý list v novom zošite na niečo zmysluplné

SET WS =WB.Sheets (1)

Ws.Name ="Týždenné údaje o príjmoch"

„Povoľte aktualizáciu obrazovky

Application.ScreenUpDating =true

„Zobrazte pole správy potvrdzujúce akciu

MSGbox „Aktuálny príjmový zošit uložený ako:“ a newFileName &VBCRLF &_

„Nový zošit bol vytvorený na budúci týždeň.“, VBInformation, „Týždenná aktualizácia príjmu“

'Vyčistite premenné objektov (osvedčené postupy)

Nastaviť wb =nič

Nastaviť ws =nič

Koncový

`` `

Vysvetlenie a ako používať:

1. Otvorte editor VBA:

- V programe Excel stlačte kláves „Alt + F11` a otvorte editor Visual Basic (VBE).

2. Vložte modul:

- Vo VBE prejdite na `insert> modul`. Tým sa vytvorí nový modul, v ktorom budete vložiť kód.

3. prilepte kód:

- Vložte kód uvedený vyššie do modulu.

4. Prispôsobte kód (dôležité!):

in : Critial:Zmeňte to na skutočnú cestu z priečinka, kde chcete uložiť svoje príjmové zošity. Uistite sa, že priečinok existuje alebo sa kód pokúsi vytvoriť. Dôležitý je koncový zadný lomok (``). Príklad:`" d:\ myincomes \ "`

in Táto linka vypočíta začiatok týždňa za predpokladu, že sa váš týždeň začína v pondelok. Ak sa váš týždeň začína v nedeľu, zmeňte ho na:`WeekeStartDate =Date - Weekday (dátum, vBSunday) + 1` Ak váš týždeň začína v inom dni, prispôsobte sa podľa toho (napr.„ VBTuesday` v utorok). Funguje to tým, že nájde deň v týždni * dnes * a odpočítava sa to mnoho dní, takže začiatok týždňa je vždy konzistentný.

* `filename =" inerve "` :Tým sa nastavuje základný názov vášho súboru. Môžete to zmeniť, ak chcete použiť iný základný názov, napríklad „MyBusinessincome“ `alebo„ Xyzincomes “`.

* Vyberte * jeden * možností tvorby zošita: Kód poskytuje tri možnosti na vytvorenie nového zošita. Nesprávka, ktorú chcete použiť, odstránením `'` na začiatku riadku:

* `'Workbooks.add` :Vytvorí úplne prázdny zošit.

* `set wb =workbooks.add (thorkbook.fullname)` :Vytvorí nový zošit, ktorý je * kópiou * aktuálneho zošita. Toto je pravdepodobne najlepšia voľba, ak si chcete zachovať hlavičky, vzorce alebo formátovanie z týždňa na týždeň.

in a `'set wb =workbooks.add (template:=templateFilePath)` :Vytvorí nový zošit založený na súbore šablóny. Budete musieť vytvoriť súbor šablóny (`.xltx`) s požadovaným formátovaním a rozložením a potom nastaviť premennú` TemplateFilePath` na správnu cestu. Dôležité: Uncomment * Obidva * z týchto riadkov, ak chcete použiť možnosť šablóny. Nezabudnite zmeniť `" c:\ path \ to \ your \ template \ inforeetemplate.xltx "`!

5. Spustite makro:

- Vráťte sa na pracovný list Excel.

- Stlačením klávesu „Alt + F8` otvoríte dialógové okno„ makro “.

- Vyberte `WeeklyComeMandage" zo zoznamu makier.

- Kliknite na „Spustiť“.

Ako to funguje:

* uloží aktuálny zošit:

* `FilePath =FilePath &NewFileName` zostavuje úplnú cestu a názov súboru pre uložený zošit.

* `WB.Saveas FilePath, FileFormat:=XLOPENXMMLWORGBOOK` uloží aktuálny zošit do zadaného priečinka pomocou vygenerovaného názvu pomocou formátu` .xlsx`. To je rozhodujúce pre kompatibilitu a zabezpečiť, aby ste používali formát moderného súboru Excel.

* Vytvára nový zošit:

* Vyhlásenie „Workbooks.Add` (alebo Template založené) vytvára úplne nový, prázdny zošit. Alebo, ako už bolo spomenuté vyššie, používa súčasný ako šablónu.

* Konvencia na pomenovanie súborov:

* `NewFileName =filename &" _ "&format (WeekStartDate," Yyyy-Mm-dd ") &" _to_ "&formát (WeekendDate," Yyyy-Mm-dd ") &" .xlsx "" generuje názov súboru, ktorý obsahuje štartovacie a koncové dátumy týždňa. To uľahčuje identifikáciu údajov pre každý týždeň. Funkcia „Format`“ zaisťuje, že dátumy sú v konzistentnom a triedom formáte (YYYY-MM-DD).

* Manipulácia s chybami a tvorba priečinkov (vylepšené):

* `Ak DIR (Filepath, vBDirectory) =" "Potom Mkdir Filepath` kontroluje, či existuje cieľový priečinok. Ak to tak nie je, vytvorí priečinok. Tým sa zabráni chybám, ak priečinok ešte neexistuje.

* Aktualizácia obrazovky:

* `Application.ScReenUpDating =False` a` Application.ScReenUpDating =True` Zakázať a prehodnotiť aktualizáciu obrazovky. Vďaka tomu je makro beh rýchlejší a zabraňuje blikaniu.

* Čistenie premennej objektu:

* `Set wb =nič" a `set ws =nič" nie sú osvedčené postupy. Uvoľňujú pamäť používanú v premenných objektov `Wb` a` Ws` potom, čo už nie sú potrebné. Pomáha to predchádzať úniku pamäte, najmä v dlhodobejších makrách.

Dôležité úvahy:

* zálohovanie: Pred spustením akýchkoľvek makier, ktoré ich upravujú alebo ukladajú, vždy zálohujte svoje zošity.

* Makro zabezpečenie: Excel má nastavenia makro zabezpečenia. Možno ich budete musieť upraviť tak, aby umožnili spustenie makier. Prejdite na `File> Možnosti> Trust Center> Nastavenia Trust Center> Nastavenia makro` a vyberte možnosť„ Povoliť všetky makrá “(neodporúča sa na všeobecné použitie; používať opatrne) alebo„ Zakázať všetky makra s upozornením “(odporúča sa, ale budete musieť povoliť makrá vždy, keď otvoríte zošit). Lepším prístupom je použitie digitálne podpísaného makra.

* Testovanie: Pred použitím so svojimi skutočnými údajmi dôkladne otestujte makro so vzorkovým zošitom.

* Umiestnenie makra: Makro sa musí uložiť do zošita, ktorý má povolené makra (buď `.xlsm` alebo starší` .xls`, ak máte staršie verzie Excel). V ideálnom prípade by ste makro uložili do svojho osobného makro zošita, takže je k dispozícii pre všetky zošity Excel. Urobiť to:

1. Vo VBE prejdite na zobrazenie> Projekt Project.

2. Ak v Prieskumníkovi projektu vidíte „Personal.xlsb“ (alebo podobné), osobný makrookmoseping je už vytvorený. Ak nie, zaznamenajte ho, aby ste ho vytvorili, zaznamenajte figuríny makra (karta vývojára> zaznamenajte makro, uložte ho do osobného makra).

3. Potiahnite modul obsahujúci kód z aktuálneho zošita na „Personal.xlsb“ v Prieskumníkovi projektu.

4. Uložte osobný makro zošit.

Spúšťanie makra (automatizácia):

Spustenie makra môžete automatizovať niekoľkými spôsobmi:

* Tlačidlo na pracovnom liste: Vložte tlačidlo (karta vývojára> Vložte> tlačidlo). Priraďte makro k tlačidlu.

* stuha: Pridajte vlastnú kartu alebo tlačidlo na stuhu Excel a priradte k nej makro.

* workbook_beforeclose udalosť: Vložte kód do udalosti `workbook_beforereclose` v module` thisworkbook`. Týmto sa spustí makro * skôr, ako sa zošity uzavrie. UPOZORNENIE: Môže to byť neočakávané správanie, ak si užívateľ neuvedomuje, že makro je spustené.

* Windows Plánovač úloh (Advanced): Pomocou plánovača úloh Windows naplánujte zošit programu Excel na otvorenie a spustenie makra každý týždeň v konkrétnom čase. Toto je najviac automatizovaný prístup. Na otvorenie zošita a spustenie makra (napr. Excel.exe "C:\ Patch \ do \ workbook.xlsm" /m "WeeklyinComeManage" ") budete musieť použiť možnosti príkazového riadku pre Excel. To si vyžaduje viac nastavenia.

Podľa týchto krokov a prispôsobením kódu môžete pomocou tohto programu Excel Macro efektívne spravovať svoje týždenné údaje o príjmoch. Nezabudnite to dôkladne otestovať skôr, ako sa na ne spoliehajte na dôležité údaje.

Najnovšie články

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