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

Вход

Регистрация

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

 

= Мир MS Excel/Format() и Текст(), преобразовать дату в "М/Д/ГГГГ;@" - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Format() и Текст(), преобразовать дату в "М/Д/ГГГГ;@" (Макросы/Sub)
Format() и Текст(), преобразовать дату в "М/Д/ГГГГ;@"
Волхв Дата: Воскресенье, 27.03.2016, 15:31 | Сообщение № 1
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
Добрый день.

Хочу в коде сделать аналог =ТЕКСТ(A2;"М/Д/ГГГГ;@")
На VBA это a = Format(x, "M/D/YYYY;@")
но возвращает через точку

пояснения: есть 20.02.2016 нужно преобразовать в 02/20/2016 (фильтр умной таблице иначе не понимает)

вот мои наброски

[vba]
Код
Sub t()
Dim a As String
'a = ActiveCell.Value
x = ActiveCell.Value
a = Format(x, "M/D/YYYY;@")
MsgBox a

'ThisWorkbook.Sheets("Лист1").ListObjects("Таблица5").Range.AutoFilter Field:=6, Criteria1:= _
        Array("="), Operator:=xlFilterValues, Criteria2:=Array(2, a)

'   ThisWorkbook.Sheets("Лист1").ListObjects("Таблица5").Range.AutoFilter Field:=6, Criteria1:= _
        Array("="), Operator:=xlFilterValues, Criteria2:=Array(2, "4/10/2016")
End Sub
[/vba]
К сообщению приложен файл: 8240490.xlsm(15Kb)


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
СообщениеДобрый день.

Хочу в коде сделать аналог =ТЕКСТ(A2;"М/Д/ГГГГ;@")
На VBA это a = Format(x, "M/D/YYYY;@")
но возвращает через точку

пояснения: есть 20.02.2016 нужно преобразовать в 02/20/2016 (фильтр умной таблице иначе не понимает)

вот мои наброски

[vba]
Код
Sub t()
Dim a As String
'a = ActiveCell.Value
x = ActiveCell.Value
a = Format(x, "M/D/YYYY;@")
MsgBox a

'ThisWorkbook.Sheets("Лист1").ListObjects("Таблица5").Range.AutoFilter Field:=6, Criteria1:= _
        Array("="), Operator:=xlFilterValues, Criteria2:=Array(2, a)

'   ThisWorkbook.Sheets("Лист1").ListObjects("Таблица5").Range.AutoFilter Field:=6, Criteria1:= _
        Array("="), Operator:=xlFilterValues, Criteria2:=Array(2, "4/10/2016")
End Sub
[/vba]

Автор - Волхв
Дата добавления - 27.03.2016 в 15:31
StoTisteg Дата: Воскресенье, 27.03.2016, 15:50 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
есть 20.02.2016 нужно преобразовать в 02/20/2016

Ну и преобразуйте:
[vba]
Код
Cells(2, 1).Value = Replace(Cells(2, 1).Value, ".", "/", 1, -1, vbTextCompare)
[/vba]


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
есть 20.02.2016 нужно преобразовать в 02/20/2016

Ну и преобразуйте:
[vba]
Код
Cells(2, 1).Value = Replace(Cells(2, 1).Value, ".", "/", 1, -1, vbTextCompare)
[/vba]

Автор - StoTisteg
Дата добавления - 27.03.2016 в 15:50
Волхв Дата: Воскресенье, 27.03.2016, 16:21 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
StoTisteg,
спасибо, в моем случае еще месяц с днем местами менять надо это выглидит так

[vba]
Код
a = Replace(Format(ActiveCell.Value, "M/D/YYYY;@"), ".", "/")
[/vba]


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
СообщениеStoTisteg,
спасибо, в моем случае еще месяц с днем местами менять надо это выглидит так

[vba]
Код
a = Replace(Format(ActiveCell.Value, "M/D/YYYY;@"), ".", "/")
[/vba]

Автор - Волхв
Дата добавления - 27.03.2016 в 16:21
StoTisteg Дата: Воскресенье, 27.03.2016, 16:23 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Ну да. Пардон. Слона-то я и не приметил...


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеНу да. Пардон. Слона-то я и не приметил...

Автор - StoTisteg
Дата добавления - 27.03.2016 в 16:23
KuklP Дата: Воскресенье, 27.03.2016, 16:40 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

Попробуйте:
[vba]
Код
ActiveSheet.ListObjects("Таблица5").Range.AutoFilter 6, Format([a2], "DD.mmm")
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПопробуйте:
[vba]
Код
ActiveSheet.ListObjects("Таблица5").Range.AutoFilter 6, Format([a2], "DD.mmm")
[/vba]

Автор - KuklP
Дата добавления - 27.03.2016 в 16:40
Волхв Дата: Воскресенье, 27.03.2016, 16:48 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
KuklP,
года не различает, если есть разные года с такой датой он их все открывает


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
СообщениеKuklP,
года не различает, если есть разные года с такой датой он их все открывает

Автор - Волхв
Дата добавления - 27.03.2016 в 16:48
KuklP Дата: Воскресенье, 27.03.2016, 17:10 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

А какой тогда смысл обрезать даты в таблице до дд.ммм? Отформатируйте как нормальная дата, как в А2 и тогда будет:
Код
    ActiveSheet.ListObjects("Таблица5").Range.AutoFilter 6, [a2].Text

Не, дело Ваше конечно, мож начальство так требует... :) Просто о стороны это выглядит как: "мы легких путей не ищем".


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеА какой тогда смысл обрезать даты в таблице до дд.ммм? Отформатируйте как нормальная дата, как в А2 и тогда будет:
Код
    ActiveSheet.ListObjects("Таблица5").Range.AutoFilter 6, [a2].Text

Не, дело Ваше конечно, мож начальство так требует... :) Просто о стороны это выглядит как: "мы легких путей не ищем".

Автор - KuklP
Дата добавления - 27.03.2016 в 17:10
_Boroda_ Дата: Воскресенье, 27.03.2016, 17:19 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вот так вроде работает. Топчете розовую дату и жмете кнопку.
[vba]
Код
    x = ActiveCell.Value
    a = Format(x, "M\/D\/YYYY")
    ActiveSheet.ListObjects("Таблица5").Range.AutoFilter Field:=6, Operator:= _
        xlFilterValues, Criteria2:=Array(2, a)
[/vba]
В столбце 8 значения для проверки года
К сообщению приложен файл: 8240490_1.xlsm(20Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВот так вроде работает. Топчете розовую дату и жмете кнопку.
[vba]
Код
    x = ActiveCell.Value
    a = Format(x, "M\/D\/YYYY")
    ActiveSheet.ListObjects("Таблица5").Range.AutoFilter Field:=6, Operator:= _
        xlFilterValues, Criteria2:=Array(2, a)
[/vba]
В столбце 8 значения для проверки года

Автор - _Boroda_
Дата добавления - 27.03.2016 в 17:19
StoTisteg Дата: Воскресенье, 27.03.2016, 17:19 | Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
[offtop]
мож начальство так требует...

А Вы ни разу не пробовали объяснить человеку, привыкшему к ДД.ММ.ГГГГ, что 03/05/2016 — это теперь 5 марта или наоборот? :)


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение[offtop]
мож начальство так требует...

А Вы ни разу не пробовали объяснить человеку, привыкшему к ДД.ММ.ГГГГ, что 03/05/2016 — это теперь 5 марта или наоборот? :)

Автор - StoTisteg
Дата добавления - 27.03.2016 в 17:19
Волхв Дата: Воскресенье, 27.03.2016, 17:27 | Сообщение № 10
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
a = Format(x, "M\/D\/YYYY")

вот оно. впервые вижу тип \ / в этом и была загвоздка


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
Сообщение
a = Format(x, "M\/D\/YYYY")

вот оно. впервые вижу тип \ / в этом и была загвоздка

Автор - Волхв
Дата добавления - 27.03.2016 в 17:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Format() и Текст(), преобразовать дату в "М/Д/ГГГГ;@" (Макросы/Sub)
Страница 1 из 11
Поиск:

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