Я работаю над кодом в Excel VBA, где пользователь может выбрать маршрут по умолчанию для файла, если он не по умолчанию.excel vba file filtering to "original filename"
Я бы хотел отфильтровать его, чтобы убедиться, что он не выберет неправильный файл.
Моя идея - как-то отфильтровать его, чтобы проверить, является ли «исходное имя файла» (которое вы можете видеть в свойствах -> подробностях) такое же, как и то, которое я даю. Таким образом, он будет работать, даже если конкретный файл будет переименован.
Моя проблема в том, что я не знаю, как сослаться на нее.
Редактировать
Благодаря ЗАТ, фактический код выглядит следующим образом:
Private Sub vncexe(vncexe As String)
Dim vncpath1 As String
Dim vncpath2 As String
Static temppath As String
vncpath1 = "C:\Program Files\RealVNC\VNC Viewer\vncviewer.exe"
vncpath2 = "C:\Program Files\RealVNC\VNC4\vncviewer.exe"
Dim opt As String
ob opt
If opt = "ob1" Then
If Dir(vncpath1) <> "" Then
vncexe = vncpath1
ElseIf Dir(vncpath2) <> "" Then
vncexe = vncpath2
ElseIf temppath <> "" Then
vncexe = temppath
Else
MsgBox "VNC viewer exe not on default path"
start:
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Please select VNC viewer"
.InitialView = msoFileDialogViewSmallIcons
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "VNCviewer.exe", "*.exe"
.Show
If .SelectedItems.Count <> 1 Then 'here should the "OR <> [original filename]" be
End
Else
vncexe = .SelectedItems(1)
strVNC = Right(vncexe, 13)
If strVNC = "vncviewer.exe" Then
temppath = vncexe
Else
MsgBox "wrong file selected"
temppath = ""
GoTo start
End If
End If
End With
End If
End If
End Sub
оригинальный путь к файлу уже установлен в «vncpath1» по умолчанию и «vncpath2».
TempPath является строкой, которая получает новый путь, который мы устанавливаем вручную здесь с этим сценарием, если файл не был найден на «vncpath1» и «vncpath2»
, но мой вопрос был, если есть способ, чтобы получить «исходное имя файла» выбранного EXE и отфильтровать его, поэтому он будет работать только в том случае, если он (в данном случае) «vncviewer.exe»
так что даже если я переименую файл, «исходное имя файла», свойство остается «vncviewer.exe»
Еще раз спасибо ZET, единственная проблема с кодом теперь - если vncviewer.exe был переименован, например, в vnc.exe, это не сработает, поэтому мне нужно получить свойство «original filename».
И потому, что мне нравится работать фантазии :-)
что оригинальное имя файла: название свойства или название книги? что такое path1 и path2 и temppath? расширение вашего файла .exe? – ZAT
так? это даже возможно? – Divin3