Страницы: 1
RSS
Как заменить символы на другом листе не переходя на него
 
Добрый день.
Запутался в элементарном. Как на другом листе заменить символ в колонке не выделяя и переходя на него, без Selecta.
На активном листе заменяю так:
Код
Sub ЗаменаСимвола()
    [A:A].Replace "1", "2"
End Sub
А если с листа Лист1 запускаю этот макрос, уже не получается:
Код
Sub ЗаменаСимвола()
    ThisWorkbook.Sheets("Лист2"). Range([A1], [A100].End(xlUp)).Replace "1", "2"
End Sub
Как исправить?
Если не можешь победить беспорядок, возглавь его
 
Нужно и для [A1], [A100] указать где они находятся. Но не проверял, получится ли так заменить.
 
MedvedevAV, у меня Ваш 2й вар. сработал. Макрос в отдельном модуле книги. Кнопка на 2м листе, замена на 1м.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
У меня не получается.
Excel 2003
Изменено: MedvedevAV - 19.08.2015 10:48:16
Если не можешь победить беспорядок, возглавь его
 
Как обратиться к диапазону из VBA

очень внимательно изучите. Ваш случай. Для всех объектов надо указывать явно родителя, если обращение не к объектам активного листа. И тем более, если код в модуле листа.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
MedvedevAV, понял в чём проблема.
Код
Sub ЗаменаСимвола()
    ThisWorkbook.Sheets("Лист2").Range(ThisWorkbook.Sheets("Лист2").[A1], ThisWorkbook.Sheets("Лист2").[A100].End(xlUp)).Replace "1", "2"
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Получилось.
Код
Sub ЗаменаСимвола()
    Range(ThisWorkbook.Sheets("Лист2").[A1], ThisWorkbook.Sheets("Лист2").[A100].End(xlUp)).Replace "1", "20"
End Sub
Спасибо ответившем.
Если не можешь победить беспорядок, возглавь его
 
Возникла одна проблема.
Мне нужно заменить в столбце все запятые "," на пусто "".
В одной ячейке оказалось слишком много символов (более 1500, это результат работы макроса по протоколированию изменений в ячейках).
Поиск-замена (макросом) говорит, что слишком сложная формула.
Можно ли из общего количества символов в ячейке не найти-заменить, а просто удалить символ (запятую).
Если это тоже не поможет (скорее всего), то что можно сделать в этом случае?
Если не можешь победить беспорядок, возглавь его
 
Может поячеечный перебор и замена строковой функцией?
Код
Replace([E3], ",", "")

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Замените вашу процедуру на эту и Будет Вам Счастье   :D
Код
Sub УдСимволы()
Dim oRng As Range, vl As Object, sTemp as string
  With ActiveWorkbook
      With .Sheets("Лог2")
        Set oRng = .Range("E2:E10000")
         For Each vl In oRng
            If Len(vl.Value) > 0 Then
              sTemp = vl.Value
              sTemp = Replace(sTemp, ",", "", 1, -1, 1)
              sTemp = Replace(sTemp, "#", "", 1, -1, 1)
              vl.Value = sTemp
            End If
         Next
      End With
  End With
  sTemp = vbNullString
  Set oRng = Nothing: Set vl = Nothing
End Sub
В коде разберетесь самостоятельно
Изменено: TSN - 19.08.2015 16:12:20
 
Все получилось, большое спасибо.
Изменено: MedvedevAV - 21.08.2015 10:28:13
Если не можешь победить беспорядок, возглавь его
Страницы: 1
Наверх