设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2265|回复: 8
打印 上一主题 下一主题

请各位帮小弟实现以下功能,具体见内容!

[复制链接]
1#
发表于 2018-9-18 12:00:45 | 显示全部楼层
将就用下吧,函数如下:
  1. Function isExists(ByVal rng As Range, Optional ByVal strExtName As String = ".pdf") As String
  2.     Dim fso As New FileSystemObject
  3.     Dim fd As Folder
  4.     Dim fl As File
  5.     Dim strFileName As String
  6.     Dim strExists As String
  7.     strExists = ""
  8.     For Each fd In fso.GetFolder(ThisWorkbook.Path).SubFolders
  9.         For Each fl In fd.Files
  10.             strFileName = Mid(fl, InStrRev(fl, "") + 1, Len(fl) - InStrRev(fl, "") - Len(strExtName))
  11.             If rng.Value = strFileName Then
  12.                 strExists = fl
  13.                 Exit For
  14.             End If
  15.             
  16.         Next
  17.     Next
  18.     isExists = strExists
  19. End Function
复制代码

将鼠标移动到函数所在的单元格,出现手型鼠标的时候,点击单元格即可

在弹出的警告栏上选择“是”,然后就可以打开文件了。

具体见附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
发表于 2018-9-18 17:36:23 | 显示全部楼层
adouleonshaw 发表于 2018-9-18 14:05
老师:为什么移植到我的工作表中就出错了。

因为你没引用Microsoft Scripting runtime 库啊。你又没说在后面的Excel表使用~~~点击“工具\引用”,下拉滚动条,选择Microsoft Scripting runtime ,点击确定后就好了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
发表于 2018-9-19 14:21:05 | 显示全部楼层
adouleonshaw 发表于 2018-9-19 13:18
我有500条记录,为什么这段代码运行起来非常卡?大师能不能帮我优化一下?

跟记录条数可能不大,倒是跟你的文件夹和文件数量关系多一些。
——如果非要优化的话,就只能使用辅助列,一次性运行生成超链接地址,再用超链接地址写公式。这样的话,只需要运算一次。具体请参考:http://www.office-cn.net/thread-124788-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-7 02:37 , Processed in 0.098186 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表