我在一个始终遵循这种层次结构的环境中工作:
F:\Client Documents\"JobCategory"\"JobNumber-ClientName"\Estimate
存在:
所以目前,我必须正确输入整个工作号和名称,并通过excel我提取工作类别等等......但是为了自动化其他一些宏。脚本是否有任何方式找到(或搜索/匹配)前5位数字,如果匹配,请使用该名称作为路径?
EG。如果我知道工作#15255,F:\ Client Documents \ 15200 \ 15255-JohnSmith或 \ 15255-JohnSnow将是一场比赛?
如果相关...我到目前为止保存工作簿的VBA脚本是:
Dim JobCat As String, JobDetails As String
JobCat = Sheet12.Range("P4").Text
JobNumber = Sheet12.Range("P5").Text
ActiveWorkbook.SaveAs Filename:= _
"F:\Client Documents\" & JobCat & "\" & JobDetails & "\Estimate.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
P5
中的哪个位置我输入了一个洞JobNumber-ClientName,P4
提取了它的数字类别。
任何帮助,甚至澄清是否有可能会有所帮助
答案 0 :(得分:0)
您可以使用Dir
函数获取与搜索字符串匹配的第一个文件夹(如果您在第一次执行后运行不带参数的Dir
,您将获得与搜索字符串匹配的下一个文件夹)
这应该适合你:
Public Sub saveMe()
Dim JobCat As String, JobDetails As String
Dim Path As String
JobCat = Sheet12.Range("P4").Text
JobNumber = Sheet12.Range("P5").Text
Path = Dir("F:\Client Documents\" & JobCat & "\" & JobDetails & "*", vbDirectory)
If Path <> "" Then
ActiveWorkbook.SaveAs Filename:= _
Path & "\Estimate.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End If
End Sub
答案 1 :(得分:0)
感谢@Dorian,不得不修改它的路径,所以我的最终脚本是:
Public Sub saveMe()
Dim JobCat As String, JobNumber As String
Dim Path As String
JobCat = Sheet1.Range("A5").Text
JobNumber = Sheet1.Range("A4").Text
Path = Dir("C:\test\" & JobCat & "\" & JobNumber & "*", vbDirectory)
If Path <> "" Then
ActiveWorkbook.SaveAs Filename:= _
"C:\test\" & JobCat & "\" & Path & "\Estimate.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End If
End Sub