Sub WeeklyLecomeManagement ()
'Dichiara le variabili
Dim WB come cartella di lavoro
Dim ws come foglio di lavoro
Dim FilePath come stringa
Dim filename come stringa
Dim newfilename come stringa
Dim WeekStartDate come data
Dim weekenddate come data
'Imposta la data di inizio della settimana (puoi adeguarlo in base al giorno di inizio della settimana, ad esempio domenica o lunedì)
WeekStartDate =Date - Weekday (data, vbmonday) + 1 'Questo imposta il giorno di inizio a lunedì
'Imposta la data di fine settimana
Weekend Date =WeekStartDate + 6
'Imposta il percorso nella cartella in cui si desidera salvare i file. Modifica questo nella cartella desiderata
FILEPATH ="C:\ path \ a \ your \ redimpler \" '<--- IMPORTANTE: Cambia questo!
'Controlla se la cartella esiste e, in caso contrario, crearla
Se Dir (FilePath, vBDirectory) ="" allora
MKDIR FILEPATH
Termina se
'Imposta il nome del file di base (ad esempio, "reddito")
Filename ="reddito"
'Imposta il nuovo nome del file (ad esempio, "reddito_2023-10-23_to_2023-10-29.xlsx")
Newfilename =fileName &"_" &formato (WeekStartDate, "Yyyy-Mm-DD") e "_to_" &Format (Weekend Date, "Yyyy-Mm-DD") &".xlsx"
'Crea un percorso file completo
FilePath =FilePath e NewFileName
' ***
'Salva la cartella di lavoro attuale con il nome file settimanale
' ***
'Ottieni un riferimento alla cartella di lavoro attuale
Imposta wb =thisworkbook
'Disabilita l'aggiornamento dello schermo per accelerare il processo
Applicazione.screenupdating =false
'Salva la cartella di lavoro
WB.Saveas FilePath, FileFormat:=xlopenxmlWorkbook 'Usa xlopenxmlworkbook per il formato .xlsx
' ***
'Crea una nuova cartella di lavoro (basata su attuale o un modello)
' ***
'Opzione 1:crea una nuova cartella di lavoro in bianco
'Workbooks.add
'Opzione 2:crea una nuova cartella di lavoro basata sulla struttura della cartella di lavoro esistente (copiala)
Imposta wb =workbooks.add (thisworkbook.fullname) 'thiswork.fulLname utilizza la cartella di lavoro corrente come modello
'Opzione 3:creare da un file modello specifico (se si dispone di una configurazione del modello)
'Dim TemplateFilePath come stringa
'TempLateFilePath ="C:\ path \ TO \ your \ Template \ incomeTemplate.xltx"' Modifica questo nel percorso del modello
'SET WB =WorkBooks.Add (Template:=TempLateFilePath)
'Facoltativo:rinominare il primo foglio nella nuova cartella di lavoro a qualcosa di significativo
Imposta WS =WB.Sheets (1)
ws.name ="Dati del reddito settimanale"
'Abilita l'aggiornamento dello schermo
Applicazione.screenupdating =true
'Visualizza una finestra di messaggio che conferma l'azione
MSGBox "cartella di lavoro in reddito corrente salvato come:" &Newfilename &VBCRLF &_
"È stata creata una nuova cartella di lavoro per la prossima settimana.", Vbinformation, "Weekly Income Aggiornamento"
'Pulisci variabili oggetti (Best Practice)
Imposta wb =niente
Imposta ws =niente
Fine sub
`` `
spiegazione e come usare:
1. Apri l'editor VBA:
- In Excel, premere `Alt + F11` per aprire l'editor Visual Basic (VBE).
2. Inserisci un modulo:
- Nel VBE, vai su `Insert> Module`. Questo crea un nuovo modulo in cui incollerai il codice.
3. Incolla il codice:
- Incollare il codice fornito sopra nel modulo.
4. Personalizza il codice (importante!):
* `FilePath =" C:\ path \ to \ your \ Regrassfolder \ "` : Critical:cambia questo nel percorso della cartella effettiva in cui si desidera salvare le carte di lavoro del reddito. Assicurati che la cartella esista o che il codice tenterà di crearla. La retroscena finale (`\`) è importante. Esempio:`" D:\ MyIncomes \ "`
* `WeekStartDate =Date - Weekday (Data, VBMONDAY) + 1`: Questa linea calcola l'inizio della settimana, supponendo che la settimana inizi lunedì. Se la tua settimana inizia domenica, cambia in:`WeekStartDate =Data - giorno della settimana (data, vbsunday) + 1` se la settimana inizia in un giorno diverso, regola di conseguenza (ad esempio,` vbtuesday` per martedì). Funziona trovando il giorno della settimana di * oggi * e sottraendo così molti giorni, quindi l'inizio della settimana è sempre coerente.
* `fileName =" reddito "` :Questo imposta il nome di base del tuo file. Puoi cambiarlo se vuoi usare un nome di base diverso, come `" MyBusinessIncome "` o `" Xyzincomes "`.
* Scegli * uno * Opzioni di creazione della cartella di lavoro: Il codice fornisce tre opzioni per la creazione della nuova cartella di lavoro. Rompente quello che vuoi usare rimuovendo `` `all'inizio della linea:
* `'Workbooks.add` :Crea una cartella di lavoro completamente vuota.
* `set wb =workbooks.add (thisworkbook.fullname)` :Crea una nuova cartella di lavoro che è una * copia * della cartella di lavoro attuale. Questa è probabilmente l'opzione migliore se si desidera preservare intestazioni, formule o formattazione di settimana in settimana.
* `'TempLateFilePath =" C:\ Path \ TO \ Your \ Template \ IncomeTemplate.xltx "` e `'set wb =workbooks.add (template:=templateFilePath)` :Crea una nuova cartella di lavoro basata su un file modello. Dovrai creare un file modello (`.xltx`) con la formattazione e il layout desiderati e quindi impostare la variabile` TemplateFilePath 'sul percorso corretto. Importante: Risozzo * Entrambi * di queste righe se si desidera utilizzare l'opzione modello. Non dimenticare di cambiare `" C:\ path \ to \ your \ template \ incometemplate.xltx "`!
5. Esegui la macro:
- Torna al foglio di lavoro Excel.
- Premere `alt + f8` per aprire la finestra di dialogo" macro ".
- Seleziona `WeeklyComeManagement` dall'elenco delle macro.
- Fare clic su "Esegui".
Come funziona:
* salva la cartella di lavoro attuale:
* `FilePath =FilePath &NewFileName` Costruisce il percorso completo e il nome file per la cartella di lavoro salvata.
* `WB.Saveas FilePath, FileFormat:=xlopenxmlWorkbook` salva la cartella di lavoro corrente nella cartella specificata con il nome generato, usando il formato` .xlsx`. Questo è cruciale per la compatibilità e per assicurarti di utilizzare il moderno formato di file Excel.
* crea una nuova cartella di lavoro:
* L'istruzione `workbooks.add` (o basata su modelli) crea una cartella di lavoro vuota nuova di zecca. Oppure, come accennato in precedenza, usa quello attuale come modello.
* Convenzione di denominazione del file:
* `Newfilename =fileName &" _ "&Format (WeekStartDate," Yyyy-MM-DD ") &" _to_ "&Format (Weekend Date," Yyyy-Mm-DD ") &" .xlsx "` `` Genera un fileName che include le date di inizio ed end della settimana. Ciò semplifica l'identificazione dei dati per ogni settimana. La funzione `Format` garantisce che le date siano in un formato coerente e ordinabile (YYYY-MM-DD).
* Gestione degli errori e creazione di cartelle (migliorata):
* `Se Dir (FilePath, vBDirectory) =" "allora mkdir FilePath` controlla se la cartella target esiste. In caso contrario, crea la cartella. Ciò impedisce errori se la cartella non esiste già.
* Aggiornamento dello schermo:
* `Application.ScreenUpdating =False` e` Application.ScreenUpdating =True` Disabilita e riaffermata l'aggiornamento dello schermo riabilitato. Questo rende la macro più veloce e impedisce lo sfarfallio.
* Clean-up variabile dell'oggetto:
* `Set wb =niente` e` set ws =niente` sono buone pratiche. Rilasciano la memoria utilizzata dalle variabili dell'oggetto `wb` e` ws` dopo che non sono più necessarie. Questo aiuta a prevenire le perdite di memoria, specialmente nelle macro a lungo termine.
Considerazioni importanti:
* Backup: Esegui sempre il backup delle cartelle di lavoro prima di eseguire eventuali macro che li modificano o salvano.
* Macro Security: Excel ha impostazioni di sicurezza macro. Potrebbe essere necessario regolarli per consentire l'esecuzione delle macro. Vai a `File> Opzioni> Centro fiduciario> Impostazioni del centro fiduciario> Impostazioni macro` e seleziona" Abilita tutte le macro "(non consigliate per uso generale; utilizzare con cautela) o" Disabilita tutte le macro con la notifica "(consigliato, ma dovrai abilitare le macro ogni volta che si apri la cartella di lavoro). Un approccio migliore è utilizzare una macro firmata digitalmente.
* Test: Prova a fondo la macro con una cartella di lavoro di esempio prima di utilizzarla con i tuoi dati reali.
* Posizionamento della macro: La macro deve essere salvata in una cartella di lavoro che ha macro abilitate (o `.xlsm` o il vecchio formato` .xls 'se hai versioni più vecchie Excel). Idealmente, salveresti la macro nella tua cartella di lavoro macro personale in modo che sia disponibile per tutte le cartelle di lavoro di Excel. Per farlo:
1. Nel VBE, vai a Visualizza> Explorer Project.
2. Se vedi "Personal.xlsb" (o simile) nel progetto Explorer, la cartella di lavoro macro personale è già stata creata. In caso contrario, registra una macro fittizia (scheda sviluppatore> Registra macro, salvala su Macro Workbook personale) per crearla.
3. Trascinare il modulo contenente il codice dalla cartella di lavoro corrente a "Personal.xlsb" nell'Explorer del progetto.
4. Salva la cartella di lavoro macro personale.
Attivazione della macro (automazione):
È possibile automatizzare l'esecuzione della macro in diversi modi:
* Pulsante sul foglio di lavoro: Inserisci un pulsante (scheda sviluppatore> Inserisci> pulsante). Assegna la macro al pulsante.
* nastro: Aggiungi una scheda o un pulsante personalizzata al nastro Excel e assegna la macro ad essa.
* WorkBook_beForeClose Event: Metti il codice all'interno dell'evento `workbook_beforeclose` nel modulo` thiswork`. Questo eseguirà la macro * prima di chiudere la cartella di lavoro. ATTENZIONE: Questo potrebbe essere un comportamento inaspettato se l'utente non ha a conoscenza del fatto che la macro è in esecuzione.
* Windows Task Scheduler (avanzato): Utilizzare Windows Task Scheduler per programmare la cartella di lavoro Excel per aprire ed eseguire la macro in un momento specifico ogni settimana. Questo è l'approccio più automatizzato. Dovrai utilizzare le opzioni della riga di comando per Excel per aprire la cartella di lavoro ed eseguire la macro (ad esempio, `Excel.exe" C:\ path \ to \ your \ workbook.xlsm " /m" WeeklyComeManagement "`). Ciò richiede più configurazione.
Seguendo questi passaggi e personalizzando il codice, è possibile gestire in modo efficiente i tuoi dati sul reddito settimanale con questa macro Excel. Ricorda di testarlo accuratamente prima di fare affidamento su di esso per dati importanti.
software © www.354353.com