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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 18:06   #1
Vitjajj
Новичок
Джуниор
 
Регистрация: 07.07.2011
Сообщений: 1
По умолчанию Проблема с Датой в Excel

У меня следующая проблема:
Ввожу дату 30.07.2011
он вписывает 1930.06.11
смена формата ячейки ничего не дает, я имею ввиду формата даты!

Кроме того мне необходимо прописать формулу которая будет считать количество дней от одной даты до другой, при том что если одно из полей пустое значение должно быть 0
Vitjajj вне форума Ответить с цитированием
Старый 07.07.2011, 18:51   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Посмотрите настройку региональных стандартов.

Код:
=ЕСЛИ(A1*B1;B1-A1;"")
vikttur вне форума Ответить с цитированием
Старый 07.07.2011, 19:05   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

=(A1*B1<>0)*(B1-A1)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 07.07.2011 в 19:10.
IgorGO вне форума Ответить с цитированием
Старый 07.07.2011, 19:20   #4
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

А можно, имя месяца, перевести в формат, даты?
Т. е. если в [a1] = Январь, то значение переменной, MyData = [a1] = 01.01.11.
valerij вне форума Ответить с цитированием
Старый 07.07.2011, 20:14   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Валер, ну я же тебе тут показывал Или ты формулой хочешь? Тогда при чем "значение переменной, MyData = [a1] = 01.01.11."?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.07.2011, 20:28   #6
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Или ты формулой хочешь?
Нет, конечно, макросом, ты это имел ввиду?
Код:
Sheets(1).[a2] = Sheets(2).Cells(1, 1) 'Sheets(2).Cells(1, 1) = Январь
месяц = Month("1 " & [a2].Value & " 2011")
MsgBox месяц
Так чета, месяц = 1, а не 01.01.2011
valerij вне форума Ответить с цитированием
Старый 07.07.2011, 21:26   #7
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Валер, ну тока между нами:
месяц = CDate("1 " & [a2].Value & " 2011")
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.07.2011, 21:36   #8
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Валер, ну тока между нами:
Заметано!!
спасибо
valerij вне форума Ответить с цитированием
Старый 07.07.2011, 22:05   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а может еще дальше:
Код:
месяц = Month(CDate("1 " & [a2].Value & " 2011"))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.07.2011, 22:56   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а может еще дальше
Ок! Усложним, задачу!
Как на основании выше изложенного, упростить выражение!!!!
Код:
Private Sub Worksheet_Activate()
MyDate = Sheets(14).Cells(1, 1) 'Значение Январь, Февраль, Март
    With Application
        .EnableEvents = False
    If MyDate = "Январь" Then .GoTo .Cells(3, 1), True
    If MyDate = "Февраль" Then .GoTo .Cells(654, 1), True
    If MyDate = "Март" Then .GoTo .Cells(1242, 1), True
        .EnableEvents = True
    End With
End Sub
Сделал, так
Код:
Private Sub Worksheet_Activate()
MyDate = CDate("1 " & Sheets(14).[a1].Value & " 2011")
    With Application
        .EnableEvents = False
    .GoTo .Cells(.Match(CDbl(MyDate), [A:A], 0), 1), True
        .EnableEvents = True
    End With
End Sub

Последний раз редактировалось valerij; 08.07.2011 в 00:17.
valerij вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отсутствует взаимосвязь между датой поступления товара и датой отгрузки Forget Microsoft Office Access 0 13.02.2011 14:10
Проблема с Excel-em foks026 Microsoft Office Excel 5 20.10.2009 11:03
Проблема с датой и временем Amen PHP 8 17.10.2009 22:11
SQL запрос - проблема с датой Serval Помощь студентам 2 22.01.2009 19:35
Проблема с Excel Lexa_SPB Microsoft Office Excel 9 11.06.2008 18:30