Име на работна книга VBA (Вземете, задайте, без разширение)

Този урок ще покаже как да получите и зададете името на работната книга във VBA.

Можем да получим или зададем името на активната работна книга във VBA или да преминем през всички отворени работни книги в Excel и да получим или зададем името на всяка от тях с помощта на VBA цикъл.

Вземете име на работна книга

За да получим името на активната работна книга, трябва да използваме свойството name на обекта на работните книги.

12345 Sub GetWorkbookName ()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameEnd Sub

Ако трябваше да изпълним кода по -горе, ще видим на екрана да се появи съобщение с името на активната работна книга.

За да преминем през всички активни работни книги и да върнем имената на работните книги в Excel, можем да изпълним следния код:

1234567 Sub GetWorkbookNames ()Dim wb Като работна книгаЗа всяка wb в работни книгиActiveCell = wb.NameActiveCell.Offset (1, 0) .ИзберетеСледващияEnd Sub

Примерите по -горе ще включват разширението на файла (напр. Xlsx). Ако не искате да включите разширението, има няколко метода, които можем да използваме, за да получим само името на файла на работната книга.

Вземете име на работна книга без разширение

Можем да използваме функциите LEFT и INSTR, за да премахнем всички символи след точката в името на файла:

12345 Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Вляво (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameEnd Sub

Можем да използваме функциите LEFT и LEN, за да премахнем 5 знака от края на името на файла:

12345 Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Вляво (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameEnd Sub

Задаване на име на работната книга

За да зададем името на работна книга във VBA, все още използваме свойството Name на работната книга, но не можем да използваме този метод за промяна на името на активната работна книга. Това се дължи на факта, че активната работна книга е отворена и ще възникне грешка при достъп до файл. За да преодолеем това, можем да запишем файла с ново име и след това да изтрием стария файл.

12345678910 Публичен подмножествоWorkbookName ()Dim strPath As StringDim strNewName As StringDim strOldName As StringstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Моля, въведете ново име за работна книга")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameУбийте strPath & "/" & strOldNameEnd Sub

За да преименуваме работна книга, която не е отворена, можем да използваме метода Name.

123 Public Sub RenameWorkbook ()Име "C: \ Data \ MyFile.xlsx" Като "C: \ Data \ MyNewFile.xlsx"End Sub

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave