请问我怎么能改变这个
Set historyWb = Workbooks.Open("U:\DB_DATA\HISTORY_LOG.xlsx")
相对路径? DB_DATA \ HISTORY_LOG.xlsx
我有两个文件。如果我想将这两个文件复制到不同的位置,我需要将它们都连接起来。
寻求帮助
答案 0 :(得分:1)
该函数名为get_relative
,它有一个相对于get的可选值。如果未设置该值,则为1。
因此,TestMe模块将返回以下内容:
\DB_DATA\HISTORY_LOG.xlsx
\HISTORY_LOG.xlsx
代码如下:
Option Explicit
Sub TestMe()
Debug.Print get_relative("U:\DB_DATA\HISTORY_LOG.xlsx")
Debug.Print get_relative("U:\DB_DATA\HISTORY_LOG.xlsx", 2)
End Sub
Public Function get_relative(str_path As String, Optional l_number As Long = 1) As String
Dim str_result As String
Dim l_start As Long
Dim l_counter As Long
For l_counter = 1 To l_number
l_start = InStr(l_start + 1, str_path, "\")
Next l_counter
get_relative = Mid(str_path, InStr(l_start, str_path, "\"))
End Function
答案 1 :(得分:0)
如果您使用Activeworkbook.FullName
,它会为您提供当前活动文件的完整路径..但如果您将其保存在那里,您是不是也知道这一点?
答案 2 :(得分:0)
这里有两种可能的解决方案:
i)您可以使用工作簿生成路径并对其进行更改
Dim Path As String
Path = Application.Substitute(ThisWorkbook.FullName, ThisWorkbook.Name, "")
Path = Path & "Subfolder A\"
ii)第二个是你应该可以使用'。'符号('。' =此文件夹,' ..' =父文件夹)
Dim Path AS String
Path = ".\Subfolder A\"
Path = "..\..\Subfolder B\"