Как предотвратить выполнение макроса в скрытых ячейках? - PullRequest
0 голосов
/ 17 апреля 2019

Я создаю макрос для замены специальных символов сущностями HTML, и я хотел бы, чтобы этот макрос применялся только к невидимым ячейкам.

Я пробовал свойство Hidden, но я слишком плохо знаком с VBA и не знаю, как его использовать для этого.

Пока мой код:

Sub replaceTextWithHTML()

Cells.Replace What:="–", Replacement:="–", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
    ReplaceFormat:=False

[other similar replacements]

End Sub

При запуске в книге, которая содержит скрытые строки, столбцы или листы, макрос также изменяет их содержимое. Я хотел бы, чтобы макрос редактировал только видимое содержимое.

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Ячейка скрыта, если ее столбец или строка скрыты:

Sub hgfds()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange
        If cell.EntireRow.Hidden = False And cell.EntireColumn.Hidden = False Then
            cell.Replace what:="-", replacement:="&ndash"
        End If
    Next cell
End Sub
0 голосов
/ 17 апреля 2019

ты можешь попробовать

For Each cells In Selection.SpecialCells(xlCellTypeVisible)
   Cells.Replace What:="–", Replacement:="–", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
    ReplaceFormat:=False
Next cells

проверяет каждую ячейку, видимая или нет. запуск может занять некоторое время ...

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