Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Как в VBA 2003 определить номер недели????? Добавлено: 10.01.08 10:19  

Автор вопроса:  Таня | ICQ: 410031407 
Прблемка такая, нужно, чтобы в зависимости от номера недели открывался определенный лист в книге, заранее спасибо за информацию.

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

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
Автор ответа:
 User Unknown



Вечный Юзер!

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
Автор ответа:
 Pashenko



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
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #10
Добавлено: 10.01.08 13:07
Перепутал значит. Номер недели надо иначе, собственно это я сделал в своём календаре dzp на ассемблере. Существует несколько распространённых способов нумерации недель. Пример User Unknown основывается на предположении о том, что первой неделей в году является та, где есть первый четверг года. Про способ от Pashenko, я не знаю, на чем оно основывается. Подробнее о нумерациях недель написано на
http://www.comtech-print.ru/etc/numeration_weeks.html

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам