【发布时间】:2018-01-18 03:09:11
【问题描述】:
我目前正在尝试制作宏以根据单元格内的文件名打开文件夹,这是我目前拥有的代码
Sub OpenFolder()
Dim MyFolder As String
Dim JobNumber As String
Dim JobYearLeft As String
Dim JobYear As String
Dim FolderNumber As String
Dim i As Integer
JobNumber = Right(Range("A1"), Len(Range("A1")) - 3)
JobYearLeft = Right(Range("A1"), Len(Range("A1")) - 1)
JobYear = Left(JobYearLeft, Len(JobYearLeft) - 4)
i = CInt(JobNumber)
Select Case i
Case 0 To 500
FolderNumber = "0001_0500"
Case 500 To 1000
FolderNumber = "0501_1000"
Case 1000 To 1500
FolderNumber = "1001_1500"
Case 1500 To 2000
FolderNumber = "1501_2000"
End Select
If (JobYear = 17) Then
MyFolder = "M:\2017\" & FolderNumber & "\"
Else
MyFolder = "M:\2016\" & FolderNumber & "\"
End If
MyFolder = Replace(MyFolder, " ", "")
ActiveWorkbook.FollowHyperlink MyFolder
MsgBox (MyFolder)
MsgBox (i)
MsgBox (JobNumber)
MsgBox (FolderNumber)
End Sub
说我的文件夹路径是M:\2017\1501_2000\V171504******\
其中**** 表示未知部分,并且该字符串的长度不是恒定的,V171504 是单元格“A1”中包含的值(MsgBox 用于我的测试以了解我是否获得了正确的值)。
编辑,这是我尝试过的目录
FindFirstFile = Dir$(MyFolder & "*" & "/")
If (FindFirstFile <> "") Then
FindFirstFile = Replace(FindFirstFile, " ", "")
ActiveWorkbook.FollowHyperlink FindFirstFile
Else
End If
这是发生的总体情况
Sub OpenFolder()
Dim MyFolder As String
Dim JobNumber As String
Dim JobYearLeft As String
Dim JobYear As String
Dim FolderNumber As String
Dim i As Integer
JobNumber = Right(Range("A1"), Len(Range("A1")) - 3)
JobYearLeft = Right(Range("A1"), Len(Range("A1")) - 1)
JobYear = Left(JobYearLeft, Len(JobYearLeft) - 4)
i = CInt(JobNumber)
Select Case i
Case 0 To 500
FolderNumber = "0001_0500"
Case 500 To 1000
FolderNumber = "0501_1000"
Case 1000 To 1500
FolderNumber = "1001_1500"
Case 1500 To 2000
FolderNumber = "1501_2000"
End Select
If (JobYear = 17) Then
MyFolder = "M:\2017\" & FolderNumber & "\"
Else
MyFolder = "M:\2016\" & FolderNumber & "\"
End If
MyFolder = Replace(MyFolder, " ", "")
Dim file As String
file = Dir$(MyFolder & Range("A1").Value & "*" & "/")
If (Len(file) > 0) Then
MsgBox "found" & file
file = Dir$()
ActiveWorkbook.FollowHyperlink file
End If
我目前遇到错误
file = Dir$(MyFolder & Range("A1").Value & "*" & "\")
对于运行时错误“52” 错误的文件名或编号
【问题讨论】:
-
你看过
DIR Function吗?试一试,如果您有问题,请在此处发布。 -
我有这个,但它似乎不起作用 FindFirstFile = Dir$(MyFolder & "*" & "/") If (FindFirstFile "") Then FindFirstFile = Replace(FindFirstFile, " ", "") ActiveWorkbook.FollowHyperlink FindFirstFile Else End If
-
你可以在你的问题中添加它吗?
-
按照上面的示例,它试图打开的链接 (
MyFolder) 是M:\2017\1501_2000`. What are you expectingMyFolder` 以包含? -
所以基本上我只知道文件夹名称的第一部分,我想打开一个包含单元格 A1 上的刺的文件夹