Страницы: 1
RSS
VBA. Слова заменить на изображения
 
На листе 1 в определенных ячейках находятся слова (в примере просто буквы). На листе 2 находятся изображения, на которые нужно заменить слова (в примере просто фигуры).

Я смог написать код для проверки каждой ячейки, но нужно чтобы проверяло сразу весь диапазон, а то писать код к каждой ячейке - это ж... в общем, слишком много. Помогите сократить код, чтобы проверка производилась сразу к диапазону ячеек.
 
Цитата
Ranker Dark: по средствам
если не знаете, как правильно пишется нестандартное слово, лучше замените обычным, чтобы не выглядеть глупо…
Код, как понял
Изменено: Jack Famous - 02.03.2021 09:18:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,Благодарю за ответ. Megalor подходит, как сокращенная версия моего макроса, но MegaLorArray вообще не подходит. Тем не менее, ни один из трех макросов не проводит проверку по всему диапазону ячеек, а только среди указанных в макросе ячейках.
 
Цитата
Ranker Dark: Тем не менее, ни один из трех макросов не проводит проверку по всему диапазону ячеек, а только среди указанных в макросе ячейках
вы НИ кодом, НИ руками в примере не показали, чего хотите
Я вам не гадалка, так что успехов в решении вопроса
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,эм... но я объяснил как можно проще... Есть диапазон ячеек, в нем есть ячейки пустые и не пустые. Не пустые нужно заменить. Мой код проверяет только не пустые, а нажно чтобы проверялись все ячейки.
 
Цитата
Ranker Dark: Есть диапазон ячеек … пустые и не пустые. Не пустые нужно заменить. Мой код проверяет только не пустые, а нужно чтобы проверялись все ячейки
а на хрена проверять ВСЕ, если заменить нужно только НЕПУСТЫЕ?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Ranker Dark написал:
я объяснил как можно проще... Есть диапазон ячеек, в нем есть ячейки пустые и не пустые
Ranker Dark, еще проще будет, если поясните: диапазон в Вашем понимании это что?
У вас в примере две заполненные ячейки. В каком диапазоне проверять?
1.Сначала столбец  "С" от первой строки и до последней на листе и потом столбец "Е" от первой строки и до последней на листе?
2.Или в пределах С3:Е5?  
3.Или полностью весь лист?
4.Или как-то еще?
 
_Igor_61,любой диапазон. Например: от B2 до F18 или от A1 до E6.  Чтобы внутри определенного диапазона ячеек я проверить все ячейки и заменить все ячейки, согласно списку замен с листа 2. Дам более длинный пример:
 
Jack Famous, потому что в пустые ячейки я могу потом добавить данные и снова включить макрос, а замены не произойдет, ибо макрос не будет настроен на это
Изменено: Ranker Dark - 02.03.2021 18:05:36 (орфографическая ошибка)
 
Цитата
Ranker Dark написал:
любой диапазон
для проверки любых диапазонов лучше всего подходят любые макросы
Изменено: Ігор Гончаренко - 02.03.2021 19:13:36
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ranker Dark написал:
любой диапазон
Цитата
Ranker Dark написал:
в пустые ячейки я могу потом добавить данные и снова включить макрос, а замены не произойдет, ибо макрос не будет настроен на это
Самое простое решение: любой диапазон и замена непустой ячейки
Код
Sub region_()
    Dim rowStart&, rowEnd&, colStart&, colEnd&, r&, c&
    rowStart = ActiveSheet.UsedRange.Row
    rowEnd = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    colStart = ActiveSheet.UsedRange.Column
    colEnd = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
For r = rowStart To rowEnd
For c = colStart To colEnd
  If Cells(r, c) <> "" Then
     '---- действие с ячейкой ----
  End If
Next c
Next r
End Sub
Еще бы знать, какой диапазон изначально проверять - на листе1 или на листе2... А так, с такой постановкой задачи для ее  решения самый лучший вариант - #10 :)
Изменено: _Igor_61 - 02.03.2021 20:51:25
 
_Igor_61, Интересное решение. Приду домой, попробую использовать
Страницы: 1
Наверх