Макрос Excel для изменения значения ячейки в соответствии с именем листа - PullRequest
0 голосов
/ 24 января 2019

В моей книге Excel около 250 листов. Я хотел бы изменить значение ячейки B2 на каждом листе, чтобы оно соответствовало названию соответствующего листа.

Как мне сделать это, используя код на основе VBA?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Ну, вы можете автоматизировать это немного дальше, чем в принятом ответе.

Давайте рассмотрим: если вы измените какое-либо имя рабочего листа, у вас возникнет та же проблема.

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

Итак, рассмотрите возможность использования такого кода (один раз на всю жизнь :)):

Sub Get_Sheets_Name()
    Dim ws As Worksheet
    'Loop all sheets in this workbook
    For Each ws In ThisWorkbook.Worksheets
        ws.Cells(2, 2).Formula = "=MID(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))+1,256)"
    Next
End Sub
0 голосов
/ 24 января 2019

Попробуйте:

Option Explicit

Sub Get_Sheets_Name()

    Dim ws As Worksheet

    'Loop all sheets in this workbook
    For Each ws In ThisWorkbook.Worksheets

        With ws
            'Import sheet name in B2
            .Cells(2, 2).Value = ws.Name
        End With

    Next

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