Come trovare il primo giorno del mese utilizzando vba (con esempio)


È possibile utilizzare la funzione DateSerial() in VBA con un valore pari a 1 per l’argomento giorno per trovare il primo giorno del mese per una data in una cella particolare.

Ad esempio, puoi utilizzare la seguente sintassi per trovare il primo giorno del mese per la data nella cella A1 e restituire tale data nella cella B1 :

 dateVal = DateValue(Range(" A1 "))

Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal), 1)

Ad esempio, se la cella A1 contiene 1/5/2023 , la cella B1 restituirà 1/1/2023 .

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: utilizzare VBA per trovare il primo giorno del mese

Supponiamo di avere il seguente set di dati in Excel che contiene informazioni sulle vendite effettuate in date diverse in un’azienda:

Supponiamo di voler trovare il primo giorno del mese per ciascuna data nella colonna A e restituire la data nella cella corrispondente nella colonna C.

Possiamo usare la seguente sintassi per fare questo:

 SubFirstDayOfMonth ()

Dim i As Integer

For i = 2 To 11
    dateVal = DateValue(Range(" A " & i))
    Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal), 1)
Next i

End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

VBA trova il primo giorno del mese

Ciascuna delle date nella colonna C rappresenta il primo giorno del mese per la data corrispondente nella colonna A.

Nota n. 1: nel codice abbiamo utilizzato For i = da 2 a 11 poiché le celle da A2 ad A11 contenevano le date a cui eravamo interessati. Sentiti libero di modificare questo intervallo in base all’intervallo di celle che desideri utilizzare.

Nota n. 2 : puoi trovare la documentazione completa della funzione DateSerial() in VBA qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando VBA:

Come ordinare per data in VBA
Come aggiungere se tra due date in VBA
Come contare maggiore della data in VBA

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *