Vba имя файла без расширения

Обновлено: 07.07.2024

Ниже приведен справочник по объекту FileSystemObject, который умеет работать с файлами, каталогами, файловыми потоками. Данный объект позволяет читать файлы, писать в файлы, получать информацию о файлах и др. Данный объект используется в ОС Windows, в некоторых скриптовых языках.

1. Создание объекта

2. Свойства

2.1. Drives

Замечание: только чтение.

3. Методы

3.1. CreateFolder

Назначение: создаёт каталог с указанным именем.

3.2. CopyFile

Назначение: копирует один или несколько файлов.

3.3. CopyFolder

Назначение: рекурсивно копирует каталог.

Описание: процесс копирования прерывается после первой возникшей ошибки.

3.4. MoveFile

Назначение: перемещает один или несколько файлов.

Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка.

3.5. MoveFolder

Назначение: рекурсивно перемещает один или несколько каталогов.

Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка.

3.6. DeleteFile

Назначение: удаляет указанный файл.

3.7. DeleteFolder

Назначение: удаляет указанную папку.

3.8. BuildPath

3.9. GetAbsolutePathName

Назначение: возвращает полный путь для заданного относительного пути (из текущего каталога).

3.10. GetBaseName

Назначение: возвращает имя (без расширения) последнего компонента в заданном пути.

3.11. GetExtensionName

Назначение: возвращает расширение последнего компонента в заданном пути.

3.12. GetFileName

Назначение: возвращает имя (с расширением) последнего компонента в заданном пути.

3.13. GetParentFolderName

Назначение: возвращает путь к последнему компоненту в заданном пути (его каталог).

3.14. GetDriveName

Назначение: возвращает имя диска в заданном пути.

3.15. DriveExists

Назначение: возвращает True, если указанный диск сущесвтвует, и False в противном случае.

Назначение: возвращает True, если указанный файл сущесвтвует, и False в противном случае.

Назначение: возвращает True, если указанный каталог сущесвтвует, и False в противном случае.

3.19. GetFile

Описание: если файл не существует, произойдёт ошибка.

3.20. GetFolder

Описание: если каталог не существует, произойдёт ошибка.

3.21. GetSpecialFolder

Описание: если каталог не существует, произойдёт ошибка.

3.22. GetTempName

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

3.23. CreateTextFile

3.24. OpenTextFile

3.25. GetStandardStream

Описание: метод применим при запуске административного скрипта в консоли с помощью CScript.exe.

3.26. GetFileVersion

Назначение: возвращает номер версии исполняемого файла (строка).

4. Объект Drive

4.1. Создание объекта

4.2. Свойства

4.2.1. AvailableSpace

Замечание: только чтение.

4.2.2. DriveLetter

Замечание: только чтение.

4.2.3. DriveType

Замечание: только чтение.

4.2.4. FileSystem

Замечание: только чтение.

4.2.5. FreeSpace

Замечание: только чтение.

4.2.6. IsReady

Замечание: только чтение.

4.2.7. Path

Замечание: только чтение.

4.2.8. RootFolder

Замечание: только чтение.

4.2.9. SerialNumber

Замечание: только чтение.

4.2.10. ShareName

Замечание: только чтение.

4.2.11. TotalSize

Замечание: только чтение.

4.2.12. VolumeName

Замечание: чтение и запись.

5. Объект File

5.1. Создание объекта

5.2. Свойства

5.2.1. Attributes

Возвращаемое значение: число, набор флагов атрибутов файла. Флаги:

Замечание: чтение и запись или только чтение, в зависимости от атрибута.

Возвращаемое значение: дата создания файла.

Замечание: только чтение.

5.2.3. DateLastAccessed

Возвращаемое значение: дата последнего доступа к файлу.

Замечание: только чтение.

5.2.4. DateLastModified

Возвращаемое значение: дата последней модификации файла.

Замечание: только чтение.

5.2.5. Drive

Замечание: только чтение.

5.2.6. Name

Возвращаемое значение: имя файла.

Замечание: чтение и запись.

5.2.7. ParentFolder

Замечание: только чтение.

5.2.8. Path

Возвращаемое значение: полный путь к файлу.

Замечание: только чтение.

5.2.9. ShortName

Возвращаемое значение: короткое имя файла в формате 8.3.

Замечание: только чтение.

5.2.10. ShortPath

Возвращаемое значение: короткий путь к файлу в формате 8.3.

Замечание: только чтение.

5.2.11. Size

Возвращаемое значение: размер файла в байтах.

Замечание: только чтение.

5.2.12. Type

Возвращаемое значение: тип файла. Информация, похожая на ту, которую можно увидеть в палитре свойств файла в проводнике.

Замечание: только чтение.

5.3. Методы

5.3.1. Copy

Назначение: копирует файл в указанное место.

5.3.2. Move

Назначение: перемещает файл в указанное место.

5.3.3. Delete

Назначение: удаляет файл.

5.3.4. OpenAsTextStream

6. Объект Folder

6.1. Создание объекта

6.2. Свойства

6.2.1. Attributes

Возвращаемое значение: число, набор флагов атрибутов папки. Флаги:

Замечание: чтение и запись или только чтение, в зависимости от атрибута.

Возвращаемое значение: дата создания каталога.

Замечание: только чтение.

6.2.3. DateLastAccessed

Возвращаемое значение: дата последнего доступа к каталогу.

Замечание: только чтение.

6.2.4. DateLastModified

Возвращаемое значение: дата последней модификации каталога.

Замечание: только чтение.

6.2.5. Drive

Замечание: только чтение.

6.2.6. IsRootFolder

Возвращаемое значение: булево (число). Признак того, является ли каталог корневым.

Замечание: только чтение.

6.2.7. Name

Возвращаемое значение: имя каталога.

Замечание: чтение и запись.

6.2.8. ParentFolder

Замечание: только чтение.

6.2.9. Path

Возвращаемое значение: полный путь к каталогу.

Замечание: только чтение.

6.2.10. ShortName

Возвращаемое значение: короткое имя каталога в формате 8.3.

Замечание: только чтение.

6.2.11. ShortPath

Возвращаемое значение: короткий путь к каталогу в формате 8.3.

Замечание: только чтение.

6.2.12. Size

Возвращаемое значение: размер всех файлов и подкаталогов, входящих в данный каталог, в байтах.

Замечание: только чтение.

6.2.13. Type

Возвращаемое значение: тип каталога. Информация, похожая на ту, которую можно увидеть в палитре свойств каталога в проводнике.

Замечание: только чтение.

6.2.14. SubFolders

Замечание: только чтение.

Создание нового подкаталога:

6.2.15. Files

Замечание: только чтение.

6.3. Методы

6.3.1. Copy

Назначение: копирует каталог в указанное место.

6.3.2. Move

Назначение: перемещает каталог в указанное место.

6.3.3. Delete

Назначение: удаляет каталог со всем содержимым.

6.3.4. CreateTextFile

7. Объект TextStream

7.1. Создание объекта

7.2. Свойства

7.2.1. AtEndOfLine

Возвращаемое значение: содержит True, если указатель достиг конца строки и False в противном случае. Работает только если файл открыт для чтения.

Замечание: только чтение.

7.2.2. AtEndOfStream

Возвращаемое значение: содержит True, если указатель достиг конца файла и False в противном случае. Работает только если файл открыт для чтения.

Замечание: только чтение.

7.2.3. Column

Возвращаемое значение: содержит номер колонки текущего символа файла.

Замечание: только чтение.

7.2.4. Line

Возвращаемое значение: содержит номер текущей строки файла.

Замечание: только чтение.

7.3. Методы

7.3.1. Close

Назначение: закрывает открытый файл.

7.3.2. Read

Назначение: считывает из файла указанное количество символов и возвращает полученную строку.

7.3.3. ReadAll

Назначение: считывает весь файл и возвращает полученную строку.

Описание: для больших файлов использование этого метода потребует больших ресурсов памяти.

7.3.4. ReadLine

Назначение: считывает строку из файла и возвращает полученную строку.

7.3.5. Skip

Назначение: пропускает при чтении файла указанное количество символов.

7.3.6. SkipLine

Назначение: пропускает при чтении файла строку.

7.3.7. Write

Назначение: записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются.

7.3.8. WriteLine

Назначение: записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.

7.3.9. WriteBlankLines

Назначение: записывает в файл указанное количество пустых строк (символы возврата каретки и новой строки).

Мне нужно получить имя файла без расширения VBA. Я знаю свойство ActiveWorkbook.Name , но если пользователь отключит свойство Windows Hide extensions for known file types , результатом моего кода будет [Name.Extension]. Как я могу вернуть только имя книги, независимое от свойства windows?

Я пробую даже ActiveWorkbook.Application.Caption , но не могу настроить это свойство.

Я хочу получить имя файла изображения без расширения в MATLAB. Я попытался использовать функцию (fileparts )как: [pathstr, name, ext, versn] = fileparts(filename); в этой функции (имя файла) должно быть с полным путем, чтобы получить имя файла без расширения в переменной (имя). когда у меня есть.

Если у меня есть имя файла, подобное одному из этих: 1.1.1.1.1.jpg 1.1.jpg 1.jpg Как я мог получить только имя файла, без расширения? Подойдет ли regex?

Ответы, приведенные здесь, уже могут работать в ограниченных ситуациях, но, безусловно, это не лучший способ сделать это. Не изобретайте велосипед. Объект файловой системы в библиотеке выполнения сценариев Microsoft уже имеет метод, позволяющий сделать именно это. Он называется GetBaseName . Он обрабатывает периоды в имени файла как есть.

Просто, но хорошо работает для меня

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

Это возвращает тип файла, начиная с последнего символа (так что позволяет избежать проблемы с точками в именах файлов)

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

Учитывая имя файла foo/bar.baz , мы можем сказать , что foo/ -это dirname , bar.baz - базовое имя, а .baz - extname . Но есть ли подобный термин, который мы можем использовать для части foo/bar или bar -то есть “имя файла без расширения”?

Привет, кто-нибудь знает, как получить имя файла без расширения в camel. используя spring xml. Я знаю, что $ даст полное имя файла, например test.txt. Я просто хотел бы получить имя test и должен использовать это имя где-то еще, кто-нибудь знает, как это сделать ?

Похожие вопросы:

Я пытаюсь вытащить имя файла из каталога без расширения. Я пробираюсь через это с помощью следующего: foreach ($allowed_files as $filename) < $link_filename = substr(basename($filename), 4.

Кто-нибудь может сказать мне, как получить имя файла без расширения? Пример: fileNameWithExt = test.xml; fileNameWithOutExt = test;

Я хочу получить имя файла без расширения файла в Vim. Я написал следующие функции в моем файле .vimrc для компиляции и запуска программы Java. :function! JAVA_RUN() :!javac %^M :endfunction map.

Я хочу получить имя файла изображения без расширения в MATLAB. Я попытался использовать функцию (fileparts )как: [pathstr, name, ext, versn] = fileparts(filename); в этой функции (имя файла) должно.

Если у меня есть имя файла, подобное одному из этих: 1.1.1.1.1.jpg 1.1.jpg 1.jpg Как я мог получить только имя файла, без расширения? Подойдет ли regex?


Пополняемый список полезных отрывков кода VBA для выполнения часто востребованных действий в MS Excel.

Служебные команды для ускорения скорости выполнения макроса:

Проверка имени пользователя, запустившего макрос:

Чтобы проверить, какой пользователь открыл книгу Excel можно использовать один из следующих вариантов:

Поиск последней строки таблицы:

Set myWSheet = ThisWorkbook.Sheets("Имя_листа") With myWSheet 'Определение индекса последней строки таблицы lastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'Определение значения в ячейки последней строке столбца A lastARow = .Range("A" &amp; lastRow).Value End With

Замена формулы на значение:

Добавление нового листа с именем после всех существующих:

Worksheets.Add (After:=Worksheets(Worksheets.Count)).Name = "Имя_листа"

Как узнать последний день предыдущего месяца:

LastMonthDay = DateAdd("d", -1, DateSerial(Year(dtDate), Month(dtDate), 1))

Определение оставшихся дней месяца:

dToEndOfMonth = DateDiff("d", dFrom, DateAdd("d", -1, _ DateSerial(Year(dFrom), Month(dFrom) + 1, 1)))

DayOfWeek = DatePart("w", dToday)

Создание нового файла из текущего:

pathNewBook = "C:\Temp" nameNewBook = "Имя_нового_файла.xls" Workbooks.Add ActiveWorkbook.SaveAs Filename:=pathNewBook & nameNewBook ActiveWorkbook.Close True

Сохранить текущий файл в формате CSV

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

ActiveWorkbook.SaveAs FileName:="Name.csv", FileFormat:=xlCSV, _ CreateBackup:=False, Local:=True ActiveWorkbook.Saved = True ActiveWorkbook.Close True

Копирование данных из одного файла в другой:

wbPath = "C:\Temp\" wbName = "Имя_файла_откуда_копируем.xls" Workbooks.Open (wbPath & wbName) Set WB = Workbooks(wbName) WB.Sheets("Лист 1").Range("A1:С10").Copy Sheet("Лист_в_текущем_файле").Range("A2").PasteSpecial xlPasteValues

Чтобы открыть файл только для чтения, следует использовать:

Workbooks.Open (Filename:=wbPath & wbName, ReadOnly:=True)

Предотвращение ошибки при неудачном поиске значения в таблице:

Set DateRowObj = WB.Sheets("Имя_листа").Range("A:A")._ Find(What:=dtToAsDate, LookIn:=xlFormulas) If (DateRowObj Is Nothing) Then WB.Close False MsgBox "Данные не найдены." Else DateRow = DateRowObj.Row 'Номер строки с искомым значением End If

Как получить имя активной книги Excel без его расширения (без .xls либо без .xlsx):

wbName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)

Проверка существования файла:

fPath = "C:\Temp\" fName = "Файл.txt" If Dir(fPath & fName) = "" Then MsgBox "Файл не найден:" & Chr(13) & fPath & fName Exit Sub End If

Кнопка, скрывающая/разворачивающая часть таблицы:

Private Sub tbVid_Click() Application.ScreenUpdating = False If tbVid Then tbVid.Caption = "Скрыть" ActiveSheet.Rows("2:29").Hidden = False Else tbVid.Caption = "Развернуть" ActiveSheet.Rows("2:29").Hidden = True End If End Sub

Обновление сводной таблицы:

Обращение к элементам Frame:

Количество строк в отфильтрованной таблице:

Быстро убрать лишние пробелы в диапазоне:

Программно снять защиту с листа:

Работа с диапазоном

Умножить диапазон на число:

ThisWorkbook.Sheets(1).Range("A1:A10") = _ ThisWorkbook.Sheets(1).Evaluate("A1:A10" & "*80")

Добавить ко всем значениям диапазона строку:

Сортировка выбранного столбца в сводной таблице

Col = Selection.Column 'Номер выбранного столбца ColMax = ActiveSheet.PivotTables("СводнаяТаблица").PivotColumnAxis. _ PivotLines.Count If Col - 1 &lt;= ColMax And Col 1 Then ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Label").AutoSort _ xlDescending, " ", ActiveSheet.PivotTables("СводнаяТаблица"). _ PivotColumnAxis.PivotLines(Col - 1), 1 End If

Счетчик времени выполнения процедуры

Функция транслитерации с русского на английский

Поиск файлов в папке

Dim strDirPath, strMaskSearch, strFileName as String strDirPath = "C:/test/" 'Папка поиска strMaskSearch = "*.xls*" 'Маска поиска 'Получаем первый файл соответствующий шаблону strFileName = Dir(strDirPath & strMaskSearch) Do While strFileName <> "" 'До тех пор пока файлы "не закончатся" MsgBox strFileName strFileName = Dir 'Следующий файл Loop

Мне нужно , чтобы получить имя файла без имени расширения с помощью VBA. Я знаю , что ActiveWorkbook.Name собственность, но если пользователь имущие Windows , свойство Hide extensions for known file types отключить, результат моего кода будет [name.extension]. Как я могу вернуть только имя рабочей книги независимо от окна недвижимости?

Я стараюсь даже , ActiveWorkbook.Application.Caption но я не могу настроить это свойство.

Ответы , приведенные здесь уже могут работать в ограниченных ситуациях, но, конечно , не лучший способ пойти об этом. Не изобретать колесо. File System Object в библиотеке Microsoft Scripting время выполнения уже есть метод , чтобы сделать именно это. Это называется GetBaseName . Он обрабатывает периоды в имени файла как есть.

Мне нужно получить имя файла без имени расширения по VBA. я знаю ActiveWorkbook.Name свойство, но если у пользователя есть свойство Windows Hide extensions for known file types выключите, результатом моего кода будет [Name.Extension]. Как я могу вернуть только имя Workbook независимо от свойства windows?

Я стараюсь даже ActiveWorkbook.Application.Caption но я не могу настроить это свойство.

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Ответы, приведенные здесь, уже могут работать в ограниченных ситуациях, но, безусловно, не лучший способ сделать это. Не изобретай велосипед. Объект файловой системы в Библиотека времени выполнения сценариев Microsoft уже есть метод, чтобы сделать именно это. Это называется GetBaseName. Он обрабатывает точки в имени файла как есть.

Просто, но у меня хорошо работает

На мой взгляд, использование функции Split выглядит более элегантно, чем InStr и Left.

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

Функция WorkbookIsOpen (FWNa $, необязательный AnyExt As Boolean = False) As Boolean

Конечная функция [/код]

Это получает тип файла, начиная с последнего символа (поэтому избегает проблемы с точками в именах файлов)

Обо всём, что мне интересно

Полезные команды VBA


Пополняемый список полезных отрывков кода VBA для выполнения часто востребованных действий в MS Excel.

Служебные команды для ускорения скорости выполнения макроса:

Проверка имени пользователя, запустившего макрос:

Чтобы проверить, какой пользователь открыл книгу Excel можно использовать один из следующих вариантов:

Поиск последней строки таблицы:

Замена формулы на значение:

Добавление нового листа с именем после всех существующих:

Worksheets.Add (After:=Worksheets(Worksheets.Count)).Name = "Имя_листа"

Как узнать последний день предыдущего месяца:

LastMonthDay = DateAdd("d", -1, DateSerial(Year(dtDate), Month(dtDate), 1))

Определение оставшихся дней месяца:

dToEndOfMonth = DateDiff("d", dFrom, DateAdd("d", -1, _ DateSerial(Year(dFrom), Month(dFrom) + 1, 1)))

Номер текущего дня в неделе (воскресенье — первый день):

DayOfWeek = DatePart("w", dToday)

Создание нового файла из текущего:

pathNewBook = "C:Temp" nameNewBook = "Имя_нового_файла.xls" Workbooks.Add ActiveWorkbook.SaveAs Filename:=pathNewBook & nameNewBook ActiveWorkbook.Close True

Сохранить текущий файл в формате CSV

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

ActiveWorkbook.SaveAs FileName:="Name.csv", FileFormat:=xlCSV, _ CreateBackup:=False, Local:=True ActiveWorkbook.Saved = True ActiveWorkbook.Close True

Копирование данных из одного файла в другой:

wbPath = "C:Temp" wbName = "Имя_файла_откуда_копируем.xls" Workbooks.Open (wbPath & wbName) Set WB = Workbooks(wbName) WB.Sheets("Лист 1").Range("A1:С10").Copy Sheet("Лист_в_текущем_файле").Range("A2").PasteSpecial xlPasteValues

Чтобы открыть файл только для чтения, следует использовать:

Workbooks.Open (Filename:=wbPath & wbName, ReadOnly:=True)

Предотвращение ошибки при неудачном поиске значения в таблице:

Как получить имя активной книги Excel без его расширения (без .xls либо без .xlsx):

Проверка существования файла:

fPath = "C:Temp" fName = "Файл.txt" If Dir(fPath & fName) = "" Then MsgBox "Файл не найден:" & Chr(13) & fPath & fName Exit Sub End If

Кнопка, скрывающая/разворачивающая часть таблицы:

Private Sub tbV ).H >

Обновление сводной таблицы:

Обращение к элементам Frame:

Количество строк в отфильтрованной таблице:

Быстро убрать лишние пробелы в диапазоне:

Программно снять защиту с листа:

Работа с диапазоном

Умножить диапазон на число:

ThisWorkbook.Sheets(1).Range("A1:A10") = _ ThisWorkbook.Sheets(1).Evaluate("A1:A10" & "*80")

Добавить ко всем значениям диапазона строку:

Сортировка выбранного столбца в сводной таблице

Поиск файлов в папке

Читайте также: