Запустить макрос для любой активной или открытой книги? - PullRequest
1 голос
/ 23 марта 2012

Итак, я создал простой макрос, чтобы:

  • отменить скрытие рабочего листа.
  • найти и заменить текст..

У меня работает этот макрос, но он может работать только тогда, когда я встраиваю код макроса в лист.

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

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Это обновит любую открытую рабочую книгу (и) с соответствующим листом. Не нужно показывать, чтобы запустить замену.

Sub UpdateChartParams()

    Dim Chart_Parameters As Worksheet
    Dim wb As Excel.Workbook

    For Each wb In Application.Workbooks
    If wb.Name <> ThisWorkbook.Name Then

        Set Chart_Parameters = Nothing
        On Error Resume Next 'ignore error if no such sheet...
        Set Chart_Parameters = wb.Worksheets("Chart_Parameters")
        On Error GoTo 0

        If Not Chart_Parameters Is Nothing Then

            Chart_Parameters.Cells.Replace What:="testtext", _
                   Replacement:="newtext", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False

        End If

    End If
    Next wb

End Sub
0 голосов
/ 24 марта 2012

Дерек,

Один из способов сделать это - добавить макрос в файл PERSONAL.XLSB. Этот файл будет загружаться в фоновом режиме при каждом запуске Excel. Первоначально файл PERSONAL.XLSB НЕ будет там.

Чтобы автоматически создать этот файл, просто начните запись «фиктивного» макроса (с кнопкой записи в левом нижнем углу электронной таблицы) и выберите «Персональную макрокоманду», чтобы сохранить его. После записи макроса вы можете откройте редактор VBA с помощью [Alt] + [F11] и вы увидите файл PERSONAL.XLSB с макросом «dummy».

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

Одним из недостатков этого общего файла макроса является то, что если вы запустите более одного экземпляра Excel, вы получите сообщение об ошибке, что файл PERSONAL.XLSB уже используется экземпляром Excel Nr. 1. Это не проблема, если вы не добавляете новые макросы в данный момент.

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