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

Sub RenameSheet()
Dim myname
myname = Replace(ActiveWorkbook. Name, ".xls", "")
    ActiveSheet.Select
    ActiveSheet.Name = myname
    Range("A1").Select
End Sub

но он не переименовывается автоматически.

1 ответ1

2

Вставьте этот код в ThisWorkbook . Он переименует ваш первый лист в соответствии с вашим текущим именем файла.

Помните, что вы не можете изменить имя файла, пока сам файл открыт в Excel. Благодаря этому вы можете использовать событие Workbook_open() которое запускается один раз при открытии файла.

InStrRev ищет справа налево первые вхождения точки (.), Чтобы узнать, где отключить расширение с помощью функции Left .

Private Sub Workbook_open()
    Count = InStrRev(ThisWorkbook.Name, ".")
    If Count > 0 Then
        Sheets(1).Name = Left(ThisWorkbook.Name, Count - 1)
        Sheets(1).Range("A2") = Left(ThisWorkbook.Name, Count - 1)
    End If
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .