Автоматично перейменовувати аркуш на основі імені файлу


0

Я хочу перейменувати мій перший аркуш або вкладку в excel на основі імені файлу. Якщо я змінюю ім'я файлу, я хочу, щоб перший аркуш автоматично був перейменований. Я не хочу включити .xlsx. Я спробував цей макрос:

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

але не автоматично перейменовується.


спасибі за вашу допомогу .. у мене є інше питання. Яку формулу я можу поставити в мою комірку A2, так що моє ім'я файлу з'являється і в цій комірці автоматично?
grace

Відповіді:


2

Вставте цей код ThisWorkbook. Вона перейменує ваш перший аркуш відповідно до поточного імені файлу.

Пам'ятайте, що ви не можете змінити ім'я файлу, поки сам файл відкривається в Excel. Завдяки цьому можна використовувати Workbook_open() подія, яке спрацьовує один раз, коли файл відкривається.

InStrRev шукає справа наліво перший випадок точки (.), щоб дізнатися, куди слід відрізати розширення за допомогою a Ліворуч функції.

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

enter image description here


Чи не буде це продовжувати робити кожен раз, коли файл буде відкритий, навіть якщо він більше не потрібен?
martineau

@martineau Оскільки я розумію, це саме те, що він / вона хоче: Automatically rename [...] і but it's not automatically renamed.
nixda

Так, я вважаю, що він повинен залишитися на місці, якщо ім'я файлу зміниться пізніше. +1
martineau

Я б перевірив, якщо Count > 0. Якщо ні, то використовуйте ThisWorkbook.Name.
Peon

@peon Якщо ім'я файлу перейменовано через cmd? :)
nixda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.