Vba имя файла без расширения
Ниже приведен справочник по объекту 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" & 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 <= 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")
Добавить ко всем значениям диапазона строку:
Сортировка выбранного столбца в сводной таблице
Поиск файлов в папке
Читайте также: