Задача в том, чтобы макрос не просто копировал значение указанной ячейки (скажем "голова,топор&капуста"), а ещё и заменял при этом определенные символы, знаки и пробелы на "_". Т.е. "голова_топор_капуста". Буду очень признателен за помощь.
Задача в том, чтобы макрос не просто копировал значение указанной ячейки (скажем "голова,топор&капуста"), а ещё и заменял при этом определенные символы, знаки и пробелы на "_". Т.е. "голова_топор_капуста". Буду очень признателен за помощь.Minor
Сейчас мы за вас и пример набросаем и заполним данными, и угадаем какая ячейка "указанная", и кто и как ее указывает, и куда ее копировать, и макрос напишем. Никуда не уходите. Мы щас!
Сейчас мы за вас и пример набросаем и заполним данными, и угадаем какая ячейка "указанная", и кто и как ее указывает, и куда ее копировать, и макрос напишем. Никуда не уходите. Мы щас!KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Нет, ну что вы, странно, что не выложили скрин кнопки "запись макроса", так это вообще чудесная вещь. Какой пример, вы о чём? Вот ловите файл. У нас есть столбик где написан формат размещений. Вот мне нужно эти размещения скопировать в таблицу на другой лист, но чтобы там ещё всё *, "х", " ", и прочее заменялось "_".
Нет, ну что вы, странно, что не выложили скрин кнопки "запись макроса", так это вообще чудесная вещь. Какой пример, вы о чём? Вот ловите файл. У нас есть столбик где написан формат размещений. Вот мне нужно эти размещения скопировать в таблицу на другой лист, но чтобы там ещё всё *, "х", " ", и прочее заменялось "_".Minor
Sub Minor() Dim Min_or, arr, i&, k& arr = Array(",", ".", "&", "!", " ", "@", "хрен_знает_что") Min_or = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).Value For k = 1 To UBound(Min_or) For i = 0 To UBound(arr) Min_or(k, 1) = Replace(Min_or(k, 1), arr(i), "_") Next: Next Sheets(2).Range("A1").Resize(UBound(Min_or)) = Min_or End Sub
[/vba]
Quote (Minor)
А файл не прикрепился чтоли?
А правила прочитать влом?
[vba]
Code
Sub Minor() Dim Min_or, arr, i&, k& arr = Array(",", ".", "&", "!", " ", "@", "хрен_знает_что") Min_or = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).Value For k = 1 To UBound(Min_or) For i = 0 To UBound(arr) Min_or(k, 1) = Replace(Min_or(k, 1), arr(i), "_") Next: Next Sheets(2).Range("A1").Resize(UBound(Min_or)) = Min_or End Sub
Sub Minor() Dim s$, i&, r As Range s = ",.&!:; @" Set r = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) For i = 1 To Len(s): r.Replace Mid$(s, i, 1), "_", xlPart: Next End Sub
[/vba]
Вариант попроще: [vba]
Code
Sub Minor() Dim s$, i&, r As Range s = ",.&!:; @" Set r = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) For i = 1 To Len(s): r.Replace Mid$(s, i, 1), "_", xlPart: Next End Sub
Можете расписать "вариант попроще", а то только начинаю изучение vba и не понимаю эту краткую запись. Либо как то прокомментируйте. Заранее спасибо
Добрый день!
Можете расписать "вариант попроще", а то только начинаю изучение vba и не понимаю эту краткую запись. Либо как то прокомментируйте. Заранее спасибо Вандерлит