Заменить текст на активной ячейке - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы заменить текст в активной ячейке.От "Итого по сумме" до "суммы".Мой код:

Sub Macro2_substitute()    
  cell = WorksheetFunction.Substitute(cell, "Total", "")   
End Sub

Это не работает.Помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 20 декабря 2018

Попробуйте:

With ActiveCell
    .Value2 = Worksheetfunction.Substitute(.Value2, "Total", "")
End With

Если вы хотите получить значение активной или выбранной в данный момент ячейки, используйте ActiveCell.
Я использовал предложение With, чтобы явно вызвать его,но это тоже можно записать так.

ActiveCell.Value2 = Worksheetfunction.Substitute(ActiveCell.Value2, "Total", "")

Это тоже работает, но неявно.

ActiveCell = Worksheetfunction.Substitute(ActiveCell, "Total", "")
0 голосов
/ 20 декабря 2018

Заменить вместо Заменить

Ваша исправленная строка кода:

Sub SubstituteActiveCell()
  ActiveCell = WorksheetFunction.Substitute(ActiveCell, " Total", "")
End Sub

, где вы забыли пробел перед суммой.Чтобы избежать этого, часто лучше заменить или заменить то, что было дано.

VBA имеет аналогичную функцию под названием Replace:

Sub ReplaceActiveCell()
  ActiveCell.Replace "sum Total", "sum"
End Sub

который должен быть предпочтительным.

0 голосов
/ 20 декабря 2018
Option Explicit
Sub SubstituteTotal()

    Dim rng As Range, cll As Range

    Set rng = Selection

    For Each cll In rng
        cll.Value = WorksheetFunction.Substitute(cll.Value, "Sum Total", "Sum")
    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...