Vba: як перетворити дату на номер тижня
Ви можете використовувати такий базовий синтаксис у VBA, щоб перетворити дату на номер тижня:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Цей конкретний приклад знайде номер тижня для кожної дати в діапазоні A2:A9 і відобразить результати в діапазоні B2:B9 .
Зауважте, що метод VBA WeekNum передбачає, що тижні починаються з неділі.
Щоб указати інший день як початок тижня, ви можете додати другий аргумент до методу WeekNum :
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
У наведеному нижче прикладі показано, як на практиці використовувати метод WeekNum для перетворення дат на номери тижнів.
Приклад: конвертуйте дату в номер тижня у VBA
Припустімо, що в Excel є такий стовпець дати:
Припустімо, ми хочемо перетворити кожну дату на номер тижня та відобразити номер тижня в стовпці B.
Для цього ми можемо створити такий макрос:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
У стовпці B відображається номер тижня для кожної дати в стовпці A, припускаючи, що тиждень починається в неділю.
Якщо ви хочете вказати інший день як початок тижня, наприклад понеділок, ви можете використовувати такий синтаксис:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
У стовпці B тепер відображається номер тижня для кожної дати в стовпці B, припускаючи, що тижні починаються з понеділка.
Примітка . Ви можете знайти повну документацію для методу VBA WeekNum тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
Як порівняти дати у VBA
Як перетворити рядок на дату у VBA
Як обчислити дні між двома датами у VBA