Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/76: Рейтинг темы: голосов - 76, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42

Удаление лишних символов

28.09.2016, 21:00. Показов 16622. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите я новичок. Макрос должен удалять повторяющиеся запятые, а так же те что стоят до и после всего текста. Но почему-то вообще ничего не происходит.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Dim proverka As String
    For Each ppp In Range("D2: D 28")
    proverka = ppp.Value
    If InStr(1, proverka, ",,") <> 0 Then proverka = Replace(proverka, ",,", ",")
        End
    If Left(proverka, 1) = "," Then Left(proverka, 1) = "" Else
        End
    If Right(proverka, 1) = "," Then Right(proverka, 1) = "" Else
        End
    
    Next
https://www.cyberforum.ru/atta... 1475085580
Вложения
Тип файла: xls proverka.xls (24.0 Кб, 29 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2016, 21:00
Ответы с готовыми решениями:

Удаление лишних пробелов
В заданной строке удалить все лишние пробелы. Прошу помощи.

Удаление лишних пробелов.
Доброго времени суток. Задание убрать лишние пробелы перед знаками разделителями, используя только Mid, Len, Asc, Chr Sub Macros3() ...

Удаление лишних страниц
Подскажите пожалуйста. Необходимо удалить или скрыть некоторые страницы Excel в зависимости от названия. Названия страниц, которые...

44
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
12.04.2017, 19:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Hugo121 Посмотреть сообщение
Вероятно в Cells(lLastRow + 1, n) не находится адрес ячейки/диапазона.
При наведении, определяет значения.Лист Microsoft Excel.xls
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
12.04.2017, 19:53
При наведении чего на что?
Я ведь дал подсказку - не поняли...
Попробуйте без выкрутасов
Visual Basic
1
ActiveSheet.Cells(lLastRow + 1, n).Value = "123"
Т.к. задача неизвестна - не берусь судить, но ошибок не будет.
1
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
12.04.2017, 19:57  [ТС]
Мне нужно определить последнюю заполненную ячейку в заданном диапозоне, после чего в следующую за ней записать значения. Но адреса столбцов поиска и диапозон поиска хочу задать через переменные, так как эти действия надо выполнить в разных таблицах.
Вложения
Тип файла: xls Лист Microsoft Excel.xls (38.5 Кб, 5 просмотров)
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
12.04.2017, 20:08  [ТС]
Цитата Сообщение от Hugo121 Посмотреть сообщение
1
ActiveSheet.Cells(lLastRow + 1, n).Value = "123"
воу работает, мне казалось что я перепробовал все варианты, и этот тоже...Спасибо!
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
12.04.2017, 20:15
Ежа с ужом скрестить не получится
1
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
04.05.2017, 07:38  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub test()
Dim idx, nom_poryadk, adress_id As Variant, nom_Row As Variant
idx = 1
nom_poryadk = 1
With Worksheets("List1")
    Set nom_Row = .Range("A:A").Find(What:=nom_poryadk, LookAt:=xlWhole)
    If nom_Row Is Nothing Then
            MsgBox ("îøèáêà: íå íàéäåíà ñòðîêà ñ ïîðÿäêîâûì íîìåðîì")
        Else
            nom_Row = nom_Row.Row
        End If
    Select Case idx
        Case Is = ID_Allel1
            adress_id = Cells(Cells(nom_Row, 7).Value, Cells(nom_Row, 8).Value)
        Case Is = ID_Allel2
            adress_id = Cells(Range("I" & nom_Row).Value, Range("J" & nom_Row).Value)
        Case Is = ID_Allel3
            adress_id = Cells(Range("K" & nom_Row).Value, Range("L" & nom_Row).Value)
        Case Is = ID_Allel4
            adress_id = Cells(Range("M" & nom_Row).Value, Range("N" & nom_Row).Value)
        Case Is = ID_Lokus
            adress_id = Cells(Range("B" & nom_Row).Value, Range("C" & nom_Row).Value)
        Case Else
            MsgBox ("îøèáêà: íå ñóùåñòâóþùèé ID îáúåêòà")
    End Select
    End With
MsgBox (adress_id)
Worksheets("List2").Cells(adress_id).Value = "ïðèâåò"
End Sub
Выдает ошибку в первом условии case, в строке: "adress_id = Cells...."
Find проходит нормально, nom_Row присваивается значение.
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
04.05.2017, 09:22
Цитата Сообщение от Baiker34 Посмотреть сообщение
Выдает ошибку в первом условии case, в строке: "adress_id = Cells...."
попробуйте просто написать Case ID_Allel1

Не по теме:

блин, кто знает как удалить свое неправильное сообщение?

0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,222
04.05.2017, 10:20

Не по теме:

Baiker34, перед копированием кода из программы на форум переключайтесь на русский язык - абракадабры не будет.



Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от _shark Посмотреть сообщение
как удалить свое неправильное сообщение?
если еще никто не ответил но прошло более 5 минут, то пиши следующее. Оно прицепится к предыдущему и можно будет поправить оба. Или писать модератору.

0
04.05.2017, 10:54

Не по теме:

Цитата Сообщение от Vlad999 Посмотреть сообщение
если еще никто не ответил но прошло более 5 минут, то пиши следующее. Оно прицепится к предыдущему и можно будет поправить оба. Или писать модератору.
да, я так и делаю. Просто думал, что есть возможность, вообще, удалить свое сообщение до истечения 5 минут

0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
05.05.2017, 13:54  [ТС]
Цитата Сообщение от _shark Посмотреть сообщение
попробуйте просто написать Case ID_Allel1
Не возымело эффекта...
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,222
05.05.2017, 14:25
файл пример с вашим кодом приложите.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
05.05.2017, 20:51
По коду совершенно непонятно чьё
Visual Basic
1
 Cells(Cells(nom_Row, 7).Value, Cells(nom_Row, 8).Value)
и что за ID_Allel1
Поэтому без файла тут говорить не о чём.
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
05.05.2017, 22:01  [ТС]
Пока удалял личные данные из файла, нашел решение: ID_allele.. это коснтанта, в ней и была причина - неправильно объявлена, точнее область действия не распространялась на данную процедуру. Вопрос: можно как-то объявить константу с модульной (глобальной) областью действия, без использования Option Explicit (без условия явного объявления)?
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
05.05.2017, 22:08
Цитата Сообщение от Baiker34 Посмотреть сообщение
Вопрос: можно как-то объявить константу с модульной (глобальной) областью действия
а как же? Как и обычную переменную, вот примеры есть:
Visual Basic
1
2
3
Public Const SW_HIDE = 0, SW_SHOWNORMAL = 1, SW_NORMAL = 1, SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3, SW_MAXIMIZE = 3, SW_SHOWNOACTIVATE = 4, SW_SHOW = 5
Public Const SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, SW_SHOWDEFAULT = 10, SW_MAX = 10
а Option Explicit тут вообще "не при делах"...
1
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
05.05.2017, 23:36  [ТС]
Цитата Сообщение от Hugo121 Посмотреть сообщение
а как же? Как и обычную переменную, вот примеры есть:
ок, спасибо!)) буду дома переработаю код, хотелось сделать как функцию, но она не рассчитывалась, и ошибки не выдавала, пришлось переводить в процедуру.. Попробую думаю теперь все заработает...
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
08.05.2017, 19:05  [ТС]
Цитата Сообщение от Baiker34 Посмотреть сообщение
вот примеры есть
у меня константы, объявленные вначале модуля, как приватные так же работают по всему модулю... Дело было не в "бабине", код все равно выдает ошибку (может это только на моей домашней машине).
Цитата Сообщение от Hugo121 Посмотреть сообщение
Поэтому без файла тут говорить не о чём.
прилагаю файл с модулем.

Добавлено через 16 секунд
Цитата Сообщение от Baiker34 Посмотреть сообщение
вот примеры есть
у меня константы, объявленные вначале модуля, как приватные так же работают по всему модулю... Дело было не в "бабине", код все равно выдает ошибку (может это только на моей домашней машине).
Цитата Сообщение от Hugo121 Посмотреть сообщение
Поэтому без файла тут говорить не о чём.
прилагаю файл с модулем.
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
08.05.2017, 19:17  [ТС]
Файл
Вложения
Тип файла: xls 1.xls (37.5 Кб, 6 просмотров)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
08.05.2017, 21:17
Если
Visual Basic
1
adress_id As Range
то нужно
Visual Basic
1
   Set adress_id = Cells(Cells(nom_Row, 2).Value, Cells(nom_Row, 3).Value)
но тогда не пашет
Visual Basic
1
Worksheets(Лист2).Cells(adress_id).Value = "привет"
в общем разбирайтесь в чём задумка, я не пытался угадать, не вникал...
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
10.05.2017, 16:07  [ТС]
Цитата Сообщение от Hugo121 Посмотреть сообщение
в чём задумка, я не пытался угадать,
Задумка следующая: есть таблица №1 с данными, есть таблица №2 с адресами ячеек которые содержат, определенные данные из табл№1. Я хотел написать функцию, аргументами которой, являются номер порядковый (nom_Row) и тип данных (Allel1, 2...) ( переменная adress_id). Проблема заключается в том, данные в табл №1 расположены в нестандартном порядке, т.е. не по строкам и не по столбцам и имеют объединенные ячейки... Предполагалось использовать эту функцию в других процедурах, чтобы работать с данными из табл №1 и создавать из них другие таблицы...
Возможно, есть более эффективные способы решения проблемы (массивы, словари), но я не умею ими пользоваться.. Пример таблицы с данными, прилагаю:
Вложения
Тип файла: xlsx табл №1.xlsx (12.0 Кб, 4 просмотров)
0
1 / 1 / 0
Регистрация: 26.03.2016
Сообщений: 42
06.07.2017, 16:11  [ТС]
Помогите с макросом, искал в поиске, но не нашел ответа, или нашел похожее на первый взгляд, но адаптировать под свой случай не удалось.
Задача:

Дано: есть диапазон текстовых данных в строке 2, который начинается с ячейки "D2" и конец не известен, в диапазоне встречаются пустые ячейки, в которые пользователь только что внес данные и потом удалил.

Нужно: определить адрес последней заполненной ячейки и адреса пустых ячеек, вывести эти адреса на экран.

P.S. основная проблема с определением границы диапазона, для непрерывного диапазона все просто, а вот с пустыми ячейками не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2017, 16:11

Сортировка и удаление лишних строк
Помогите с кодом сортировки. В общем в текстовую строку пишите номер магазина, все записи с этим номером показываются на листе, а остальные...

Удаление лишних строк - доделать макрос
Приветствую знатоков и прошу помочь доделать код. Есть текстовые данные, разбитые постранично. На каждой странице титульная часть из 2...

Удаление лишних запятых в ячейке экселя кнопкой
Добрый день. Подскажите пожалуйста новичку. В ячейке экселя есть данные, например - АДРЕС. Адрес в ячейку копирует сам пользователь. ...

Поиск начала таблицы на листе и удаление лишних строк над таблицей
Добрый день! Пожалуйста, подскажите, каким образом можно организовать поиск начала таблицы с данными и последующее удаление всех...

Вставка в строку нескольких символов и удаление символов из строки
не могу найти информацию про это:( какими операторами это делается?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru