gpt4 book ai didi

excel - VBA将文件拖放到用户窗体中以获取文件名和路径

转载 作者:行者123 更新时间:2023-12-01 19:32:59 24 4
gpt4 key购买 nike

我想学习一个新技巧,但我不是 100% 有信心这在 VBA 中是可能的,但我想我应该向这里的专家咨询一下。

我想做的是避开老式的 getopenfilename 或浏览器窗口(在我们的网络驱动器上设置起始目录确实很困难),我想创建一个 VBA 用户表单,其中用户可以将文件从桌面或浏览器窗口拖放到窗体上,VBA 将加载文件名和路径。再次,我不确定这是否可能,但如果是的话,或者是否有人在我之前完成过它,我将不胜感激。我知道如何设置用户表单,但除此之外我没有任何实际代码。如果我可以提供什么,请告诉我。

感谢您的时间和考虑!

最佳答案

我找到了实现这一目标的方法。据我所知,这只能使用 TreeView 控件来完成。您可能必须右键单击工具箱才能找到并添加它。它将位于“附加控件”或类似的内容下。除了控件之外,您还需要两件事。

UserForm_Initialize子中,您将需要以下代码行来启用拖放:TreeView1.OLEDropMode = ccOLEDropManual:

UserForm_Initialize()
TreeView1.OLEDropMode = ccOLEDropManual
End Sub

然后您将需要 Private Sub TreeView1_OLEDragDrop 事件。为了节省空间,我省略了所有参数。它们应该很容易找到。在该子文件中,只需声明一个字符串,可能是 strPath 或类似的东西来保存文件名和路径,并设置 strPath = Data.Files(1) ,这将获得用户拖动到 TreeView 控件的文件的文件名和路径。这假设用户一次只拖动一个文件,但据我所知,如果您进行实验,这应该是可以拖动多个文件来完成的操作。

Private Sub TreeView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
StrPath = Data.Files(1)
End Sub

编辑:您还需要添加对 Microsoft Windows Common Controls 6.0 的引用

我还添加了示例代码。

关于excel - VBA将文件拖放到用户窗体中以获取文件名和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com