![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] макрос преобразования форматов |
|
2010 - [решено] макрос преобразования форматов
|
Старожил Сообщения: 292 |
Подскажите, как используя регулярные выражения переделать формат дат с 10.05.2005 на формат 10-05-2005 . нужно именно макросом , а не ctrl+h и заменить точку на тире
|
|
Отправлено: 21:45, 13-04-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Надо полагать, его нет у Вас в списке форматов. Насколько я понимаю, перед тем, как использовать пользовательский тип формата в .FindFormat/.ReplaceFormat — его нужно добавить к списку пользовательских форматов. Т.е., что-то наподобие:
Option Explicit Sub Макрос1() ActiveSheet.Range("D1").NumberFormat = "dd-mm-yyyy" With Application With .FindFormat .Clear .NumberFormat = "m/d/yyyy" End With With .ReplaceFormat .Clear .NumberFormat = "dd-mm-yyyy" End With End With ActiveSheet.Cells.Replace What:="", Replacement:="", SearchFormat:=True, ReplaceFormat:=True ActiveSheet.Range("D1").NumberFormat = "General" End Sub |
Отправлено: 18:04, 17-04-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Iska,
Цитата kontox:
что-то код написан, а не работает. Можете посмотреть, где в нем ошибка? |
|
Отправлено: 10:58, 18-04-2015 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата kontox:
Ваших потребностей я не понял, о чём писал уже выше. Других пояснений Вы не дали. |
|
Отправлено: 18:31, 18-04-2015 | #13 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Исходя из описанного ниже формата нужно выделить только корректные записи, т.е. записи такого вида.
Название поля Тип (длина) Обязательность 1 ID number (4) NOT NULL 2 FIO varchar (20 char ) NOT NULL 3 Document varchar (12 char NOT NULL 4 Type_phone number (1) NULL 5 Phone number (11) NULL |
Отправлено: 18:36, 19-04-2015 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать kontox, что означает, например, «длина (4)» применительно к «number»? Число десятичных символов при отображении?!
Update: и по поводу: Цитата:
В общем, как-то так: Скрытый текст
Sub Sample() Dim objRow As Range Dim objRange As Range Dim objSelection As Range Dim boolSkipFromSelection As Boolean Set objSelection = Nothing For Each objRow In ThisWorkbook.Worksheets.Item("proverka").UsedRange.Rows boolSkipFromSelection = False For Each objRange In objRow.Range(Cells(1, 1), Cells(1, 3)).Cells If IsEmpty(objRange.Value) Then boolSkipFromSelection = True Exit For End If Next If Len(CStr(objRow.Cells(1, 1).Value)) > 4 Then boolSkipFromSelection = True ElseIf Len(CStr(objRow.Cells(1, 2).Value)) > 20 Then boolSkipFromSelection = True ElseIf Len(CStr(objRow.Cells(1, 3).Value)) > 12 Then boolSkipFromSelection = True ElseIf Len(CStr(objRow.Cells(1, 4).Value)) > 1 Then boolSkipFromSelection = True ElseIf Len(CStr(objRow.Cells(1, 5).Value)) > 11 Then boolSkipFromSelection = True End If If Not boolSkipFromSelection Then If objSelection Is Nothing Then Set objSelection = objRow Else Set objSelection = Union(objSelection, objRow) End If End If Next objSelection.Select Set objSelection = Nothing Set objRange = Nothing Set objRow = Nothing End Sub |
|
Последний раз редактировалось Iska, 19-04-2015 в 19:19. Отправлено: 18:52, 19-04-2015 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] удаление файлов определенных форматов | DOCznet | Скриптовые языки администрирования Windows | 8 | 21-02-2014 01:50 | |
2003/XP/2000 - Макрос Excel для преобразования колонки текста в число в dbf файлах | aRHangel2013 | Microsoft Office (Word, Excel, Outlook и т.д.) | 8 | 11-01-2013 17:07 | |
2010 - [решено] Таблицы форматов A1 и А2 | Хоррор | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 08-10-2010 17:07 | |
CD и DVD - [решено] Выбор форматов записи для CD-дисков | DIDIDIDIMA | Программное обеспечение Windows | 4 | 20-11-2009 14:15 | |
Delphi - [решено] Bitmap и Canvas для преобразования изображения, работает очень долго | hackroute | Программирование и базы данных | 2 | 02-11-2009 11:01 |
|