请如何更改此
Set historyWb = Workbooks.Open("U:DB_DATAHISTORY_LOG.xlsx")
相对路径?db_data history_log.xlsx
我有两个文件。如果我想将这两个文件复制到不同的位置,则需要连接。
thx帮助
该函数称为 get_relative
,它具有相对于获取的可选值。如果您不设置该值,则为1。因此,TestMe模块将返回以下内容:
DB_DATAHISTORY_LOG.xlsx
HISTORY_LOG.xlsx
这是代码:
Option Explicit
Sub TestMe()
Debug.Print get_relative("U:DB_DATAHISTORY_LOG.xlsx")
Debug.Print get_relative("U:DB_DATAHISTORY_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
如果您使用Activeworkbook.FullName
,它将为您提供当前活动文件的完整路径。但是,如果您还是将其保存在那里,您是否知道这一点?
这里有两个可能的解决方案:
i)您可以使用工作簿生成路径并更改路径
Dim Path As String
Path = Application.Substitute(ThisWorkbook.FullName, ThisWorkbook.Name, "")
Path = Path & "Subfolder A"
ii)第二个是您应该能够使用'。符号('。'=此文件夹,'..'= parent文件夹)
Dim Path AS String
Path = ".Subfolder A"
Path = "....Subfolder B"