乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 31|回复: 2

[求助]如何用vba获取指定的搜索路径

[复制链接]

11

主题

39

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2005-4-13 17:20:00 | 显示全部楼层 |阅读模式
我想得到我添加的搜索文件路径,不知用vba如何实现,谢谢指导!
回复

使用道具 举报

11

主题

39

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2005-4-14 13:30:00 | 显示全部楼层
对于上面的问题,我想到了一个变通的办法,在本人电脑上均没问题,可一换就有问题!
由于我是用vba调用外部块,每次安装到不同的电脑,外部块的绝对路径都要改变,我想请问一下如果获得dvb文件的路径,这样的话就可以方便的获得外部块的绝对路径了。
看来没有人遇到过这个问题,我想了个解决办法:
Dim oVbe As Object
Dim aa As Variant
Dim bb As String
Dim a As Integer
Dim b As Integer
Dim c As Integer
Set oVbe = Application.VBE
aa = oVbe.VBProjects(1).FileName '获得当前dvb文件路径及文件名
a = Len(aa) '获得全部路径的字段长度
bb = "jingtong.dvb" '定义当前文件的名称
b = Len(bb) '获得当前文件名的字段长度
c = a - b '用全部字段长减去文件名字段长度
Dim aaa As String
aaa = Left(aa, c) '获得当前dvb文件存放的路径
我的这个方法自己认为不好,因为我在2002,2004,2005上测试时均能通过,但是当换了一台电脑后就又出现调用外部块无法找到路径的问题!哪位高手有好的办法还麻烦告知,谢谢了!
回复

使用道具 举报

25

主题

134

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
234
发表于 2005-4-14 15:54:00 | 显示全部楼层
以下程序可以得到每一个支持文件搜索路径.
Sub FindSupportPath()
Dim curSupportPath As Variant
Dim i As Integer
curSupportPath = StoDim(ThisDrawing.Application.Preferences.Files, ";")
For i = 0 To UBound(curSupportPath)
                         MsgBox curSupportPath(i)
Next
End Sub
Function StoDim(ByVal s As String, Optional div As String) As Variant
Dim s_len As Integer '字符串长度
Dim s_p As Integer                 '查找开始位置
Dim gs() As String
Dim i As Integer
Dim j As Integer
If div = "" Then div = " "
i = 0
s_p = 1
s = LTrim(s + div)
s_len = Len(s)
j = 0
While s_p  1 Then
                                                                                         ReDim Preserve gs(j)
                                                                                         gs(j) = Left(s, s_p - 1)
                                                                                         j = j + 1
                                                         End If
                                                         s = LTrim(Right(s, s_len - s_p))
                                                         s_len = Len(s)         '替换后新串长度
                                                         s_p = 1                         '下次开始查找的位置
                                                         i = i + 1
                         Else
                                                         s_p = s_p + 1                 '如果没有找分隔符,从下一个开始
                         End If
Wend
'空数组
If j = 0 Then Exit Function
StoDim = gs         '得到字符串数组
End Function
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-16 22:07 , Processed in 0.330700 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表