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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение даты на другой формат в VBA. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение даты на другой формат в VBA.
Изменение даты на другой формат в VBA.
Captain_Hemp Дата: Понедельник, 03.07.2017, 10:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток ! Подскажите, пожалуйста, как поменять с помощью макроса на VBA формат даты на dd/mm/yyyy в Excel'e ? Спасибо за помощь, буду рад любому наталкивающему совету или ресурсу.
 
Ответить
СообщениеДоброго времени суток ! Подскажите, пожалуйста, как поменять с помощью макроса на VBA формат даты на dd/mm/yyyy в Excel'e ? Спасибо за помощь, буду рад любому наталкивающему совету или ресурсу.

Автор - Captain_Hemp
Дата добавления - 03.07.2017 в 10:01
RAN Дата: Понедельник, 03.07.2017, 10:08 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4604
Репутация: 925 ±
Замечаний: 0% ±

2010
[vba]
Код
Selection.NumberFormat = "dd\/mm\/yyyy"
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Selection.NumberFormat = "dd\/mm\/yyyy"
[/vba]

Автор - RAN
Дата добавления - 03.07.2017 в 10:08
Captain_Hemp Дата: Среда, 05.07.2017, 09:49 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Почитал литературу, вот что вышло:
[vba]
Код
Sub data()
'ëèñò 1 è 2
Worksheets("ðîçïë.(ðàõ.1)").Columns("M").NumberFormat = "DD/MM/YYYY"
Worksheets("äåìîíòàæ(ðàõ.2)").Columns("M").NumberFormat = "DD/MM/YYYY"
'ëèñò 3
Worksheets("ïëîìá.(ðàõ.3)").Columns("M").NumberFormat = "DD/MM/YYYY"
Worksheets("ïëîìá.(ðàõ.3)").Columns("R").NumberFormat = "DD/MM/YYYY"
Worksheets("ïëîìá.(ðàõ.3)").Columns("W").NumberFormat = "DD/MM/YYYY"
'ëèñò 4
Worksheets("ìîíòàæ(ðàõ.4)").Range("M7:M10000,R7:R10000,W7:W10000").NumberFormat = "DD/MM/YYYY"
'ëèñò 5
Worksheets("ïîâ³ðêà,ÖÑÌ(ðàõ.5,6)").Range("G7:G10000").NumberFormat = "DD/MM/YYYY"
'ëèñò 6
Worksheets("ðåìîíò(ðàõ.7)").Range("K6:K10000").NumberFormat = "DD/MM/YYYY"
End Sub
[/vba]
Но проблема в том, что он редактирует столбцы с данными при отсутствие пустых ячеек в них. Возможно проблема в том ещё, что отчёты приходят с произвольными форматами ячеек. Но ручное исправление этого момента к успеху не привели. Ниже пример.
К сообщению приложен файл: _Microsoft_Exce.rar(52Kb)
 
Ответить
СообщениеПочитал литературу, вот что вышло:
[vba]
Код
Sub data()
'ëèñò 1 è 2
Worksheets("ðîçïë.(ðàõ.1)").Columns("M").NumberFormat = "DD/MM/YYYY"
Worksheets("äåìîíòàæ(ðàõ.2)").Columns("M").NumberFormat = "DD/MM/YYYY"
'ëèñò 3
Worksheets("ïëîìá.(ðàõ.3)").Columns("M").NumberFormat = "DD/MM/YYYY"
Worksheets("ïëîìá.(ðàõ.3)").Columns("R").NumberFormat = "DD/MM/YYYY"
Worksheets("ïëîìá.(ðàõ.3)").Columns("W").NumberFormat = "DD/MM/YYYY"
'ëèñò 4
Worksheets("ìîíòàæ(ðàõ.4)").Range("M7:M10000,R7:R10000,W7:W10000").NumberFormat = "DD/MM/YYYY"
'ëèñò 5
Worksheets("ïîâ³ðêà,ÖÑÌ(ðàõ.5,6)").Range("G7:G10000").NumberFormat = "DD/MM/YYYY"
'ëèñò 6
Worksheets("ðåìîíò(ðàõ.7)").Range("K6:K10000").NumberFormat = "DD/MM/YYYY"
End Sub
[/vba]
Но проблема в том, что он редактирует столбцы с данными при отсутствие пустых ячеек в них. Возможно проблема в том ещё, что отчёты приходят с произвольными форматами ячеек. Но ручное исправление этого момента к успеху не привели. Ниже пример.

Автор - Captain_Hemp
Дата добавления - 05.07.2017 в 09:49
_Boroda_ Дата: Среда, 05.07.2017, 10:03 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А так? Для столбца М Лист1. На остальное, думаю, самостоятельно сможете размножить
[vba]
Код
Sub tt()
    With Sheets("Лист1")
        c_ = "M"
        r_ = .Cells(.Rows.Count, c_).End(3).Row
        With .Cells(1, c_).Resize(r_)
            .NumberFormat = "DD/MM/YYYY"
            .FormulaLocal = .FormulaLocal
        End With
    End With
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА так? Для столбца М Лист1. На остальное, думаю, самостоятельно сможете размножить
[vba]
Код
Sub tt()
    With Sheets("Лист1")
        c_ = "M"
        r_ = .Cells(.Rows.Count, c_).End(3).Row
        With .Cells(1, c_).Resize(r_)
            .NumberFormat = "DD/MM/YYYY"
            .FormulaLocal = .FormulaLocal
        End With
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 05.07.2017 в 10:03
Captain_Hemp Дата: Среда, 05.07.2017, 10:08 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, всё равно форматирует только определенный участок столбца.
 
Ответить
Сообщение_Boroda_, всё равно форматирует только определенный участок столбца.

Автор - Captain_Hemp
Дата добавления - 05.07.2017 в 10:08
_Boroda_ Дата: Среда, 05.07.2017, 10:13 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Конечно. А зачем Вам форматировать весь столбец? Только зря увеличивать размер файла
У Вас же в коде написано
[vba]
Код
r_ = .Cells(.Rows.Count, c_).End(3).Row
[/vba] - это мы ищем последнюю заполненную ячейку столбца М
[vba]
Код
.Cells(1, c_).Resize(r_)
[/vba] - с первой ячейки столбца М вниз на r_ ячеек

Если хотите на весь столбец, то напишите[vba]
Код
r_ = .Rows.Count
[/vba]Но я бы так не стал делать

Если хотите на 10000 строк, то напишите[vba]
Код
r_ = 10000
[/vba]Но я бы и так не стал делать


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКонечно. А зачем Вам форматировать весь столбец? Только зря увеличивать размер файла
У Вас же в коде написано
[vba]
Код
r_ = .Cells(.Rows.Count, c_).End(3).Row
[/vba] - это мы ищем последнюю заполненную ячейку столбца М
[vba]
Код
.Cells(1, c_).Resize(r_)
[/vba] - с первой ячейки столбца М вниз на r_ ячеек

Если хотите на весь столбец, то напишите[vba]
Код
r_ = .Rows.Count
[/vba]Но я бы так не стал делать

Если хотите на 10000 строк, то напишите[vba]
Код
r_ = 10000
[/vba]Но я бы и так не стал делать

Автор - _Boroda_
Дата добавления - 05.07.2017 в 10:13
Captain_Hemp Дата: Среда, 05.07.2017, 10:15 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, я не это имел ввиду. Оно форматирует с 300-от ячеек, например, только 30. Остальные остаются в том формате, в каком были изначально.
 
Ответить
Сообщение_Boroda_, я не это имел ввиду. Оно форматирует с 300-от ячеек, например, только 30. Остальные остаются в том формате, в каком были изначально.

Автор - Captain_Hemp
Дата добавления - 05.07.2017 в 10:15
_Boroda_ Дата: Среда, 05.07.2017, 10:18 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Покажите на примере. В файле на Лист1 в столбце М введите свои данные с "неизменяемым" форматом, запустите в этом же файле мой макрос и приложите сюда полученный результат с комментарием типа "в ячейке М36 ничего не поменялось"


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПокажите на примере. В файле на Лист1 в столбце М введите свои данные с "неизменяемым" форматом, запустите в этом же файле мой макрос и приложите сюда полученный результат с комментарием типа "в ячейке М36 ничего не поменялось"

Автор - _Boroda_
Дата добавления - 05.07.2017 в 10:18
Captain_Hemp Дата: Среда, 05.07.2017, 10:26 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, вот. В М7 поменялось, а дальше нет.
К сообщению приложен файл: 1575096.rar(28Kb)
 
Ответить
Сообщение_Boroda_, вот. В М7 поменялось, а дальше нет.

Автор - Captain_Hemp
Дата добавления - 05.07.2017 в 10:26
_Boroda_ Дата: Среда, 05.07.2017, 10:37 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Что не поменялось дальше М7? У меня файл выглядит так (для увеличения тпните картинку левой мышой)

По-моему все нормально. Что конкретно Вам не нравится?

[p.s.]И не нужно архивировать файлы, у которых размер меньше 100 кб. Такие файлы можно класть сюда и так
К сообщению приложен файл: 0551029.png(12Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧто не поменялось дальше М7? У меня файл выглядит так (для увеличения тпните картинку левой мышой)

По-моему все нормально. Что конкретно Вам не нравится?

[p.s.]И не нужно архивировать файлы, у которых размер меньше 100 кб. Такие файлы можно класть сюда и так

Автор - _Boroda_
Дата добавления - 05.07.2017 в 10:37
KuklP Дата: Среда, 05.07.2017, 10:37 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2340
Репутация: 479 ±
Замечаний: 0% ±

2003-2010
Не варите воду, все меняется! Вот формат ячейки в 24 строке после макроса:

Если надо через слеш, то Вам тоже рассказали как:
[vba]
Код
.NumberFormat = "DD\/MM\/YYYY"
[/vba]
[p.s.]И нафига Вы файл в 70кб запаковываете в РАР? Усложнить задачу помогающим? >(
К сообщению приложен файл: 8462100.gif(36Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНе варите воду, все меняется! Вот формат ячейки в 24 строке после макроса:

Если надо через слеш, то Вам тоже рассказали как:
[vba]
Код
.NumberFormat = "DD\/MM\/YYYY"
[/vba]
[p.s.]И нафига Вы файл в 70кб запаковываете в РАР? Усложнить задачу помогающим? >(

Автор - KuklP
Дата добавления - 05.07.2017 в 10:37
KuklP Дата: Среда, 05.07.2017, 10:39 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 2340
Репутация: 479 ±
Замечаний: 0% ±

2003-2010
:D Дуплетом..


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение:D Дуплетом..

Автор - KuklP
Дата добавления - 05.07.2017 в 10:39
KuklP Дата: Среда, 05.07.2017, 11:09 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2340
Репутация: 479 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКросс:
http://www.programmersforum.ru/showthread.php?t=310564

Автор - KuklP
Дата добавления - 05.07.2017 в 11:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение даты на другой формат в VBA.
Страница 1 из 11
Поиск:

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