Страницы: 1 2 След.
RSS
Макрос - удаление значений в ячейке, идущих после пробела.
 
Здравствуйте, только недавно познакомилась с макросами и еще на Вы с ними, поэтому прощу помощи! Есть столбец Е (строк более 5000), который содержит в каждой ячейке дату и время, например 12.07.2013 12:09, необходимо убрать время. Очистка формата не помогает, нашла на одном из форумов (sql.ru) гениальную идею - удалить знаки после пробела, но не могу понять как применить это к целому столбцу, а не только к активной ячейке.
Код
Dim i As Integer
   With ActiveCell
       i = InStr(1, StrReverse(.Text), " " ;) 
       ActiveCell = Left(.Text, Len(.Text) - i)
   End With

Буду очень признательна и благодарна за помощь!
 
Код
Sub t()
    Dim rng As Range
    
    For Each rng In ActiveSheet.UsedRange.Columns(1).Cells
        rng.Value = Split(rng.Value, " ")(0)
    Next
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
А если просто преобразовать формат в дату без времени?
Код
Sub TimeDelete()
Dim n As Integer
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(n, 1) = Format(Cells(n, 1).Value, "dd.mm.yyyy")
Next n
End Sub
 
Без цикла:
Код
Sub www()
    With Intersect([a:a], ActiveSheet.UsedRange)
        .Replace " *", "", 2
        .NumberFormat = "dd/mm/yyyy"
    End With
End Sub

Павел Запивахин,  так у Вас получится текст в ячейках, а значит искать по дате будет затруднительно.
Изменено: KuklP - 14.07.2013 13:43:15
Я сам - дурнее всякого примера! ...
 
Цитата
kar778 пишет: Очистка формата не помогает...
Попробуйте вариант без затей:
1. Ваш формат - Формат ячеек (Числовые форматы (Все форматы (ДД.ММ.ГГГГ ч;мм)));
2. Другой формат - Формат ячеек (Числовые форматы (Дата(*14.03.2001))).

P.S.
У меня - 2003.
Полагаю, в любой старшей версии EXCEL это действие также элементарно.
 
Матрена, то же замечание. Значение ячейки при смене формата не изменится -
Цитата
KuklP пишет: а значит искать по дате будет затруднительно.
Я сам - дурнее всякого примера! ...
 
Сбросить время можно так:
Код
[a1:a5000]=application.round([a1:a5000],0)

Это выполнить в окне отладки.
Получите
13.07.2013 0:00
14.07.2013 0:00
15.07.2013 0:00
Далее изменить формат, чтоб не видеть нули.

P.S. Стоп, наврал - так округлит к ближайшей дате...
Код
[a1:a5000]=application.floor([a1:a5000],1)

Только не пойму, почему 1, а не 0? С нулём не работает из окна отладки, но работает функция на листе.
Изменено: Hugo - 14.07.2013 19:33:19
 
Цитата
KuklP пишет: Значение ячейки при смене формата не изменится
KuklP!
Прошу пардону за невнимательность: визуальный результат "усыпил бдительность". :)
 
Спасибо большое за все ваши варианты!!!спасли!!!
Изменено: kar778 - 15.07.2013 09:13:39
 
А как переделать макрос в топикстарт, чтобы убрать текст до разделителя (пробела)?
 
Здравствуйте.
Похожий вопрос:
Цитата
Deymos85 написал:
А как переделать макрос в топикстарт, чтобы убрать текст до разделителя (пробела)?
Как убрать текст в ячейках после определенного слова?
 
Вариант:
Код
Sub qqq()
Dim sWord As String
    sWord = "текст2" 'Здесь Ваш искомый текст
    With ActiveCell
        ActiveCell = Left(.Text, InStr(1, .Text, sWord) - 1) & sWord
   End With
End Sub
 
Спасибо получилось идеально то, что попросил. Но не то что хотел((((
Извините.
Как чтобы удалялось от искомого текста ВМЕСТЕ с искомым текстом?
Изменено: newthrone - 24.05.2016 13:38:56
 
Да практически так же, если не мешает оставшийся пробел )
Код
Sub qqq()
Dim sWord As String
    sWord = "текст2" 'Здесь Ваш искомый текст
    With ActiveCell
        ActiveCell = Left(.Text, InStr(1, .Text, sWord) - 1) ' & sWord
   End With
End Sub
 
Юрий М, пробел не смущает. Всё работает когда выделена одна ячейка.
Не пойму почему из выделенного диапазона - срабатывает только на первой ячейке, остальные игнорируются.
И если в первой ячейке искомого текста нет - выдает ошибку:
Run-time error '5':
Invalid procedure call or argument.


Я что-то не правильно сделал?
 
Потому, что написано на основании макроса в стартовом сообщении - для одной (активной) ячейки.
Если нужно обработать диапазон, то перебирайте ячейки циклом.
 
Буду пробовать.
Спасибо что основное написали как сделать. :)
 
Код
Sub qqq()
Dim sWord As String, i As Long
    sWord = "текст2" 'Здесь Ваш искомый текст
    For i = 1 To 10 'С первой по десятую строку столбца А
        Cells(i, 1) = Left(Cells(i, 1).Text, InStr(1, Cells(i, 1).Text, sWord) - 2) ' Поменяли на двойку - теперь без пробела
    Next
End Sub
 
Юрий М, у меня теперь совсем ничего не получается.

Информация в столбце C.  Нужно чтобы в ячейках после символов (включая их) "(КОЭФ" - текст удалялся.
Ячейки могу выделять сам. Если будет через поиск вообще шикарно, но не так важно.
Ячейки могут быть без этих символов, тогда ничего делать не нужно.
Поможете?  
Изменено: newthrone - 24.05.2016 14:56:40
 
А Вы не обратили внимание на комментарий к строке кода?
Цитата
первой по десятую строку столбца А
А у Вас данные с какой строки начинаются?
 
Юрий М, обратил.
Сделал копию документа - удалил первые 2 столбца. И ничего не сработало.

С 33 строки. Но лучше если сам буду выделять или через поиск.
Вдруг строки будут плавать.
Изменено: newthrone - 24.05.2016 15:15:58
 
Цитата
newthrone написал:
удалил первые 2 столбца. И ничего не сработало.
Да причём тут столбцы? Я про строки говорю.
Код
Sub qqq()
Dim sWord As String, i As Long
    sWord = "(КОЭФ" 'Здесь Ваш искомый текст
    For i = 12 To 17 'С 12 по 17 строку столбца С
        If Cells(i, 3) Like "*" & sWord & "*" Then Cells(i, 3) = Left(Cells(i, 3).Text, InStr(1, Cells(i, 3).Text, sWord) - 1) ' Поменяли на двойку - теперь без пробела, оставил единицу
    Next
End Sub
 
Юрий М, Всё работает. Спасибо вам.
 
newthrone,а если найти "(КОЭФ*" и заменить на ""?
То есть, (КОЭФ и всё после этого просто удаляется.
 
Helen_Ka, не понял.
Делаем замену на знак вопроса и что далее?
Изменено: newthrone - 24.05.2016 15:42:51
 
newthrone,не на знак вопроса, а на пусто (ничего).
Если я правильно поняла, текст, который нужно удалить, ВСЕГДА начинается с (КОЭФ. Далее * - любое количество любых символов.
То есть, всё, начиная с (КОЭФ - удаляется.
 
Цитата
newthrone написал: Делаем замену на знак вопроса
Нееее - на "пусто" )) А знак вопроса - это Вас спрашивают: подойдёт ли такой вариант?
 
Helen_Ka, все равно не понял, допустим заменяю на пробел.
А как удалять информацию в этих ячейках ?
Изменено: newthrone - 24.05.2016 15:44:59
 
Helen_Ka, всё, понял о чём вы.
Да действительно так намного проще))) Спасибо.
 
newthrone, Вам три раза написали - не на знак вопроса, не на пробел, на пусто (ничего).
Оставьте второе окно "Заменить на:" пустым, очистите его от всех символов..
Страницы: 1 2 След.
Читают тему
Наверх