Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/47: Рейтинг темы: голосов - 47, средняя оценка - 4.68
7 / 7 / 6
Регистрация: 02.04.2012
Сообщений: 321
1

Удалить текст после первого определённого символа

01.02.2017, 17:43. Показов 9857. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Напишите пожалуйста макрос который удаляет текст после первого определённого символа - точка с запятой (,
Ячейки с текстом находятся в столбце D (Их около 50 тыс.).

Пример файла исходник:
(D1) Мебель;Красная;Жёлтая;Пластиковая;Деревянная
(D2) Мебель;Красная;Жёлтая;Пластиковая;БУ
(D3) Мебель;Красная;Жёлтая;Пластиковая;Новая

Пример файла необходимый результат:
(D1) Мебель
(D2) Мебель
(D3) Мебель

Пример файла во вложение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2017, 17:43
Ответы с готовыми решениями:

Как удалить текст до определенного символа
Доброго времени суток, друзья Подскажите как возможно решить такие задачи через VBA: Есть...

Как преобразовать в прописные все буквы, расположенные в тексте после первого вхождения символа "*"
Помогите написать код для задачи: Преобразовать в прописные все буквы, расположенные в тексте после...

Средние символы из строки s2 удалить и поставить в s1 после первого символа 'А'
Создать программу которая осуществляла: 1. Ввод строк s1 и s2. 2.средние символы из строки s2...

Удалить текст после определенного символа
Здравствуйте! Есть текст: "111; 222; 333; 444; 555; 666; 777" Нужно сделать так, что бы при...

6
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.02.2017, 18:05 2
Лучший ответ Сообщение было отмечено MrRuslanBB как решение

Решение

Применительно к твоему примеру:
Visual Basic
1
2
3
4
5
6
7
8
Sub pr()
    Dim i&    
    a = ActiveSheet.UsedRange
    For i = 1 To UBound(a)
        a(i, 1) = Split(a(i, 1), ";")(0)
    Next
    Cells(1, 4).Resize(UBound(a)) = a
End Sub
1
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 305
01.02.2017, 21:01 3
2003
Ругается машина
не нравится ей
a(i, 1) = Split(a(i, 1), ";")(0)
Вложения
Тип файла: xls pr.xls (25.5 Кб, 13 просмотров)
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
02.02.2017, 07:43 4
Читай внимательно ответ
Цитата Сообщение от toiai Посмотреть сообщение
Применительно к твоему примеру:
И теперь сравни два файла и найди разницу.

Добавлено через 8 минут
В примере pr.xls удали информацию из ячейки A1 и запусти макрос.
0
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 305
02.02.2017, 19:21 5
toiai, спасибо за подсказку. Сам бы я до такого не додумался
Цитата Сообщение от toiai Посмотреть сообщение
В примере pr.xls удали информацию из ячейки A1 и запусти макрос.
Не знаю как автора вопроса, но меня такое решение не удовлетворило бы
Макрос имеет "Конкретную заточку"
Почему вы считаете что в исходном варианте ячейка А1 будет пустой?
Кроме того, я перетаскивал А1 по разным столбцам и строкам (напр R20)

ответ везде один и тот же:
Run-time error '9'
Subscript out of range

получается шаг влево, шаг вправо и мы " вне диапазона" !?
А чтобы получить желаемый результат - надо скопировать "D" и создать новый Лист ?
поправьте если ошибаюсь
1
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 305
03.02.2017, 03:27 6
Лучший ответ Сообщение было отмечено MrRuslanBB как решение

Решение

...Напишите пожалуйста макрос который ...
Если макрос - это дань моде а не обязательное условие , тогда:

1) копируем формулу и вставляем в ячейку J1
Код
=ЛЕВБ(D1;НАЙТИ(";";D1)-1)
2) скопировать ячейку J1
3) переводим курсор в окошко адреса ( слева от строки формул)
4) В окошке уже написано "J1" - надо заменить на "J50000"
5) Shift+Ctrl+Стрелка вверх потом Ctrl+V.
6) ЛЕВОЙ мышкой ухватиться за ребро выделения и перетащить на D1
7) только значения
Вложения
Тип файла: xlsx Ruslan.xlsx (11.7 Кб, 0 просмотров)
1
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
03.02.2017, 19:12 7
Лучший ответ Сообщение было отмечено MrRuslanBB как решение

Решение

Если макрос - вовсе не обязательное условие, то ещё один вариант :

Выделить столбец с данными и Данные, Текст по столбцам, С разделителями, Далее, Точка с запятой(все остальные убрать), Далее, выделить все столбцы, кроме первого и супротив каждого установить Пропустить
2
03.02.2017, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2017, 19:12
Помогаю со студенческими работами здесь

Удалить все элементы файла, расположенные после первого символа пробела
дан символьный файл,содержащий по крайней мере один символ пробела. Удалить все его элементы,...

Удалить все элементы файла, расположенные после первого символа пробела
Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы,...

Удалить все элементы символьного файла, расположенные после первого символа пробела
Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы,...

Удалить текст после первого пробела
Добрый день. Как можно удалить текст текст после первого пробела. Например, первый текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru