excel - FileDialog 的 InitialFileName 不显示整个文件名
问题描述
所以,我FileDialog
从一个工作簿中打开一个,让用户选择和导入文件。我有一些逻辑可以通过 推荐特定目录和文件.InitialFileName
,具体取决于用户设置的标准。此代码处理FileDialog
:
With objFileDialog
.InitialFileName = strIFN 'This is the relevant line
.AllowMultiSelect = False
.ButtonName = "Select"
.Title = "Please select the file containing " & whichFile
If .Show > 0 Then
End If
If (.SelectedItems.Count > 0) Then
strPath = .SelectedItems(1)
End If
End With
strIFN
包含推荐文件的路径,例如:
\\Company-Server\Users\Username\Desktop\Intern Unterlagen\Projektcontrolling\Testlauf\AK\201909_Company_Zeiteinträge_AK.xlsx
路径工作正常,但在打开时FileDialog
我看到了这个:
如您所见,文件名被奇怪的滚动设置缩短了。该框实际上包含整个文件名,但在您单击它并滚动到左侧之前不会显示它。由于这使用户感到困惑,我试图显示整个文件名。我会很感激这方面的任何提示。
作为奖励,理想情况下,我希望已经选择推荐的文件(以蓝色突出显示),但这对于可用性来说并不是必需的。
解决方案
这似乎是正常行为,我可以在 Excel 2016 中轻松复制它。虽然SendKeys
通常不受欢迎,但它似乎对这种情况很有用:
With objFileDialog
.InitialFileName = strIFN 'This is the relevant line
.AllowMultiSelect = False
.ButtonName = "Select"
.Title = "Please select the file containing " & whichFile
On Error Resume Next
SendKeys "{HOME}"
On Error GoTo 0
If .Show > 0 Then
strPath = .SelectedItems(1)
End If
End With
显示对话框时,文本光标位于文件名的末尾,包含文件名的文本框具有焦点。所以,这有点像在黑暗中拍摄,但我认为"{HOME}"
应该将光标返回到文件名的开头,就像用户在HOME打开对话框时按下键一样。
注意:根据我的观察,是否包含Wait:=True
to似乎没有区别SendKeys
。
推荐阅读
- javascript - 为什么我的 Javascript 没有检测到我需要的元素?
- go - 如何使用一个字节缓冲区作为地图的关键存储?
- excel - 从打开的工作簿中选择以粘贴复制的数据
- angularjs - TypeError:无法读取未定义的属性“包含”
- linux - 修改以前在linux上执行的命令
- java - 无法将 JSON 响应反序列化为 Java 对象
- sql-server - 带有 Order By 的子查询中 TOP 的奇怪行为
- reactjs - 在打印窗口中反应组件大小的变化
- google-apps-script - 分析 API v3 | 仅在少数帐户上出现错误 401(无效凭据)
- javascript - 如何将 2 个下拉列表与 React 中的状态相互连接