У меня есть сценарий, который способен выбрать файл excel с моего компьютера и вывести имя файла в ячейку, расположенную на вкладке «Контрольный лист».VBA - Расширение файла
Сценарий делает все, что нужно сделать, за исключением случаев, когда он помещает имя файла в указанную ячейку, однако вывод имени файла не является тем, что я ожидал. У меня есть пример ниже
Proper Filename: ExcelSheet 2014.xlsm <-- This is what I am wanting as the output
Output Filename: Excelsheet 20141 <-- This is the output I am getting.
Я пропустил что-то здесь или есть конкретный код, чтобы получить желаемый результат выше? Код ниже
EDIT:
я, возможно, нашел мой ответ, но я не комфортно с ним, и хотел бы мнение о нем. Каталог файла сохраняется в строке с именем «fpath», и имя файла сохраняется в строке с именем «filename». Строка «fname» закодирована, чтобы забрать директорию варианта WBA, однако она возвращает имя файла вместо пути. Строка пути файла (fpath) ничего не выводит, что же происходит с этим кодом?
Sub CopyWorkbookName()
Dim WBA As Variant
Dim WBA1 As Workbook
Dim WB2 As Workbook
Dim fname As String
Dim fpath As String
Set WB2 = ThisWorkbook
WBA = Application.GetOpenFilename(_
FileFilter:="Excel Files (*.XLSM), *.XLSM", _
Title:="Select File To Be Opened")
If WBA = False Then
MsgBox "You have not selected a file, stopping script"
Exit Sub
End If
Set WBA1 = Workbooks.Add(WBA)
fname = Dir(WBA)
fpath = WBA1.Path
WB2.Activate
With WB2.Worksheets("Control Sheet")
.Cells(3, 2).Value = fpath
.Cells(8, 4).Value = fname
End With
WBA1.Close Savechanges:=False
End Sub()
Попробуйте WBA1.FullName вместо WBA1.Name –
все еще получаю тот же результат – PootyToot
Try: FPATH = Left (WBA, InStrRev (WBA, "\")) –