Страница: 1 |
Вопрос: Как в VBA 2003 определить номер недели????? | Добавлено: 10.01.08 10:19 |
Автор вопроса: ![]() |
Прблемка такая, нужно, чтобы в зависимости от номера недели открывался определенный лист в книге, заранее спасибо за информацию. |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #1 | Добавлено: 10.01.08 10:53 |
http://www.cpearson.com/excel/weeknum.htm |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 410031407 Вопросов: 11 Ответов: 23 |
Профиль | Цитата | #2 | Добавлено: 10.01.08 11:20 |
спасибо за сайт, но можно пояснить, что именно нужно для определения номера недели. Спасибо |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 410031407 Вопросов: 11 Ответов: 23 |
Профиль | Цитата | #3 | Добавлено: 10.01.08 11:36 |
Помогите с определением номера недели, плиз |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #4 | Добавлено: 10.01.08 11:43 |
Private Function Week(dteValue As Date) As Integer 'Monday is set as first day of week Dim lngDate As Long Dim intWeek As Integer 'If january 1. is later then thursday, january 1. is not in week 1 If Not Weekday("01/01/" & Year(dteValue), vbMonday) > 4 Then intWeek = 1 Else intWeek = 0 End If 'Sets long-value for january 1. lngDate = CLng(CDate("01/01/" & Year(dteValue))) 'Finds the first monday of year lngDate = lngDate + (8 - Weekday("01/01/" & Year(dteValue), vbMonday)) 'Increases week by week until set date is passed While Not lngDate > CLng(CDate(dteValue)) intWeek = intWeek + 1 lngDate = lngDate + 7 Wend 'If the date set is not in week 1, this finds latest week previous year If intWeek = 0 Then intWeek = Week("31/12/" & Year(dteValue) - 1) End If Week = intWeek End Function msgbox "Сейчас идёт " & CStr(Week(Now)) & " неделя." Как-то так. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #5 | Добавлено: 10.01.08 12:13 |
format(date,"ww"![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 410031407 Вопросов: 11 Ответов: 23 |
Профиль | Цитата | #6 | Добавлено: 10.01.08 12:20 |
Pashenko, спасибо огромное за помощь, все оказалось очень просто, еще раз спасибки. Таня |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 410031407 Вопросов: 11 Ответов: 23 |
Профиль | Цитата | #7 | Добавлено: 10.01.08 12:21 |
Вечный Юзер!
Тебе тоже мой респект, благодарю за помощь. Буду обращаться. Таня |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 10.01.08 12:31 |
Я сделал так:
1. Создал книгу, в которой семь листов с названиями Пн,Вт,Ср,Чт,Пт,Сб,Вс 2. В модуле книги разместил такой код: Option Explicit
Private Sub Workbook_Open() Dim s() As String s = Split("Пн,Вт,Ср,Чт,Пт,Сб,Вс", ",", 7) ThisWorkbook.Worksheets(s(Weekday(Now(), vbMonday) - 1)).Activate End Sub Всё |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 410031407 Вопросов: 11 Ответов: 23 |
Профиль | Цитата | #9 | Добавлено: 10.01.08 12:38 |
спасибки конечно, но это что касается дня недели, а меня интересует номер недели |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 10.01.08 13:07 |
Перепутал значит. Номер недели надо иначе, собственно это я сделал в своём календаре dzp на ассемблере. Существует несколько распространённых способов нумерации недель. Пример User Unknown основывается на предположении о том, что первой неделей в году является та, где есть первый четверг года. Про способ от Pashenko, я не знаю, на чем оно основывается. Подробнее о нумерациях недель написано на
http://www.comtech-print.ru/etc/numeration_weeks.html |
Страница: 1 |
|