Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.09.2008, 10:40   #1
Pinya
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 37
По умолчанию VBA

Всем доброго времени суток.
У меня есть дата. Например: 20,08,2011
Как определить по этой дате день недели?
Код:
Dim dteDate As date
dteDate = 20-08-2011
Select Case Weekday(dteDate)
Case vbMonday To vbFriday
MsgBox "Рабочий"
Case Else
MsgBox "Выходной"
End Select
Pinya вне форума
Старый 19.09.2008, 10:45   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата из справки по функциям Excel

Цитата:
ДЕНЬНЕД WEEKDAY
Возвращает день недели, соответствующий аргументу дата_в_числовом_формате. День недели определяется как целое в интервале от 1 (Воскресенье) до 7 (Суббота).

Синтаксис

ДЕНЬНЕД(дата_в_числовом_формате;тип )

Дата_в_числовом_формате - это код дата-время, используемый в Microsoft Excel для вычислений с датами и периодами времени. Аргумент дата_в_числовом_формате можно задать как текст, например, как "15 Апр 1993" или "4.15.93", а не как число. Текст автоматически преобразуется в дату в числовом формате. Для получения более подробной информации об аргументе дата_в_числовом_формате, см. ТДАТА.

Тип - это число, которое определяет тип возвращаемого значения.

Тип Возвращаемое число

1 или опущен Число от 1 (Воскресенье) до 7 (Суббота). Аналогично предыдущей версии Microsoft Excel.

2 Число от 1 (Понедельник) до 7 (Воскресенье)

3 Число от 0 (Понедельник) до 6 (Воскресенье)

Замечания

· Microsoft Excel для Windows и Microsoft Excel для Macintosh используют по умолчанию различные системы дат. Для получения более подробной информации, см. ТДАТА.

· Можно использовать функцию ТЕКСТ, чтобы преобразовать значение в нужный числовой формат при использовании системы дат 1900:

ТЕКСТ("4.16.90"; "ДДДД") равняется Понедельник

Примеры

ДЕНЬНЕД("14.2.90") равняется 4 (Среда)

Если используется система дат 1900: ДЕНЬНЕД(29747,007) равняется 4 (Среда)

Если используется система дат 1904: ДЕНЬНЕД(29747,007) равняется 3 (Вторник)
если же взять Ваш код, то можно переделать его так
Код:
Dim dteDate As Date
    dteDate = #9/20/2008#
    iDay = Weekday(dteDate)
    Select Case iDay
    Case 1
        MsgBox "Воскресенье"
    Case 2
        MsgBox "Понедельник"
    Case 3
        MsgBox "Вторник"
    Case 4
        MsgBox "Среда"
    Case 5
        MsgBox "Четверг"
    Case 6
        MsgBox "Пятница"
    Case 7
        MsgBox "Суббота"
    End Select
хотя, наверное можно проще сделать.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 19.09.2008 в 11:45.
VictorM вне форума
Старый 19.09.2008, 11:51   #3
Pinya
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 37
По умолчанию

Спасибо. Работает.

А еще скажите пожалуйста как к дате 30,09,2008 прибавить один или два дня с учетом того что :
(29,09,2008 + 2 дня) = 01,10,2008
(29,09,2008 + 1 дня) = 30,09,2008

Код:
Dim pDateB As Date
    pDateB = #9/20/2008#
    iDay = Weekday(pDateB )
    Select Case iDay
    Case 1
        pDateB = pDateB.AddDays(1)   
    Case 7
        pDateB = pDateB.AddDays(2)   
    End Select
Такой код выдает ошибку. (http://www.vbnet.ru/forum/show.aspx?id=140744)

Последний раз редактировалось Pinya; 19.09.2008 в 12:54.
Pinya вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц