Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразование даты из текста - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразование даты из текста (Макросы/Sub)
Преобразование даты из текста
sboy Дата: Вторник, 19.07.2016, 17:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Может кто знает в чем секрет? или это просто мои пробелы в изучении VBA
есть в выгружаемых данных дата в текстовом формате 2016-01-31
написал макрос
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
With Selection
.Value = CDate(.Value)

End With
End Sub
[/vba]
он стирает данные из ячейки
а через промежуточную переменную все прекрасно меняет
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
With Selection
x = CDate(.Value)
.Value = x
End With
End Sub
[/vba]
 
Ответить
СообщениеДобрый день.
Может кто знает в чем секрет? или это просто мои пробелы в изучении VBA
есть в выгружаемых данных дата в текстовом формате 2016-01-31
написал макрос
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
With Selection
.Value = CDate(.Value)

End With
End Sub
[/vba]
он стирает данные из ячейки
а через промежуточную переменную все прекрасно меняет
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
With Selection
x = CDate(.Value)
.Value = x
End With
End Sub
[/vba]

Автор - sboy
Дата добавления - 19.07.2016 в 17:18
Manyasha Дата: Вторник, 19.07.2016, 17:32 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
sboy, здравствуйте. Если Selection - это одна ячейка, у меня оба способа работают.
А если нужно в нескольких ячейках преобразовать значения, то нужно пройтись по всем ячейкам:
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
    For Each cell In Selection
        With cell
            .Value = CDate(.Value)
        End With
    Next cell
End Sub
[/vba]

Если не поможет, покажите кусочек выгруженных данных.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеsboy, здравствуйте. Если Selection - это одна ячейка, у меня оба способа работают.
А если нужно в нескольких ячейках преобразовать значения, то нужно пройтись по всем ячейкам:
[vba]
Код
Sub ДатаИзТекста()

' Сочетание клавиш: Ctrl+В
'
    For Each cell In Selection
        With cell
            .Value = CDate(.Value)
        End With
    Next cell
End Sub
[/vba]

Если не поможет, покажите кусочек выгруженных данных.

Автор - Manyasha
Дата добавления - 19.07.2016 в 17:32
sboy Дата: Вторник, 19.07.2016, 17:56 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
Manyasha, Добрый день.
Selection - это одна ячейка
Проблема оказалась в другом...
когда готовил файл-пример, проверил еще раз [vba]
Код
.Value = CDate(.Value)
[/vba]
при запуске макроса через "макросы"-"выполнить" отрабатывает правильно
а при запуске с сочетания клавиш стирает данные...
 
Ответить
СообщениеManyasha, Добрый день.
Selection - это одна ячейка
Проблема оказалась в другом...
когда готовил файл-пример, проверил еще раз [vba]
Код
.Value = CDate(.Value)
[/vba]
при запуске макроса через "макросы"-"выполнить" отрабатывает правильно
а при запуске с сочетания клавиш стирает данные...

Автор - sboy
Дата добавления - 19.07.2016 в 17:56
_Boroda_ Дата: Вторник, 19.07.2016, 18:03 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 9347
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня тоже все работает
И по Контрл Шифт В (русская) тоже


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня тоже все работает
И по Контрл Шифт В (русская) тоже

Автор - _Boroda_
Дата добавления - 19.07.2016 в 18:03
Manyasha Дата: Вторник, 19.07.2016, 18:07 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
sboy,
Цитата
' Сочетание клавиш: Ctrl+В
В - русская, наверное?
Запускать нужно на русской раскладке. На английской - ctrl+d - заполняет все выделенные ячейки первым значением, ну или тем, что выше на одну ячейку, если выделена только одна.

Если хотите, чтобы на любой раскладке работала, используйте метод OnKey


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеsboy,
Цитата
' Сочетание клавиш: Ctrl+В
В - русская, наверное?
Запускать нужно на русской раскладке. На английской - ctrl+d - заполняет все выделенные ячейки первым значением, ну или тем, что выше на одну ячейку, если выделена только одна.

Если хотите, чтобы на любой раскладке работала, используйте метод OnKey

Автор - Manyasha
Дата добавления - 19.07.2016 в 18:07
sboy Дата: Среда, 20.07.2016, 11:08 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
разобрался. Дело было не в раскладке, а в заглавной букве. Ctrl+В а не в...
Спасибо за помощь
 
Ответить
Сообщениеразобрался. Дело было не в раскладке, а в заглавной букве. Ctrl+В а не в...
Спасибо за помощь

Автор - sboy
Дата добавления - 20.07.2016 в 11:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразование даты из текста (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!