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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразование даты из текста (Макросы/Sub)
Преобразование даты из текста
sboy Дата: Вторник, 19.07.2016, 17:18 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Может кто знает в чем секрет? или это просто мои пробелы в изучении 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]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Может кто знает в чем секрет? или это просто мои пробелы в изучении 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
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

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

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

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


ЯД: 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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

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


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

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

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

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


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

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

Автор - Manyasha
Дата добавления - 19.07.2016 в 18:07
sboy Дата: Среда, 20.07.2016, 11:08 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

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


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

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

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