永发信息网

在excel vba中如何调用api函数实现快速查找文件名

答案:2  悬赏:0  手机版
解决时间 2021-02-28 17:09
  • 提问者网友:人生佛魔见
  • 2021-02-28 05:59
在excel vba中如何调用api函数实现快速查找文件名
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-02-28 06:08
excel vba调用windows API 快速查找所选择的文件
excel选中文件名清单、自动从“a1"文件夹中查找相应的文件。
ShellExecuteA,DataObject,Clipboard,find,SendKeys

Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long

Const SW_SHOW = 5

Sub test()
Selection.Copy
Dim MyData As DataObject
Dim sTemp As String, s As String
Set MyData = New DataObject
MyData.GetFromClipboard
sTemp = MyData.GetText
s = Replace(sTemp, vbCrLf, ";")
s = Replace(s, vbTab, ";")
MyData.SetText (s)
MyData.PutInClipboard
ShellExecute 0&, "find", Range("a1"), _
vbNullString, vbNullString, SW_SHOW
Application.Wait (Now + TimeValue("0:00:02"))
SendKeys s & "{ENTER}"
End Sub
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-02-28 07:47
setcapture 函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有 鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。 如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定 的窗口。 函数原型:hwnd setcapture(hwnd hwnd); 参数: hwnd:当前线程里要捕获鼠标的窗口句柄。 返回值:返回值是上次捕获鼠标的窗口句柄。如果不存在那样的句柄,返回值是null。 备注:只有前台窗口才能捕获鼠标。如果一个后台窗口想捕获鼠标,则该窗口仅为其光标热 点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点 击该窗口,将其调入前台。当一个窗日不再需要所有的鼠标输入时,创建该窗口的线程应当 调用函数releasecapture来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。 windows 95:调用setcaptune会引起失去鼠标捕获的窗口接收一个wm_capturechanged 消息。 速查:头文件:winuser.h:输入库:user32.lib。 声明: declare function setcapture lib "user32" alias "setcapture" (byval hwnd as long) as long vba毕竟不是vb,很多功能实现不了那也没办法的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯