Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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.