|
- Private Sub Workbook_Open()
- Dim strCon As String, iPath As String, i As Integer, iFlag As String, iStr As String
- '定义变量
- On Error Resume Next
- strCon = ActiveSheet.QueryTables(1).Connection
- '将当前活动数据透视表中缓存连接信息赋值给变量strCon
- Select Case Left(strCon, 5) 'select case语句,条件为strCon变量中从左侧取5个字符
- Case "ODBC;" '用于判断缓存连接信息中的数据连接方式,如果是ODBC方式
- iFlag = "DBQ=" '将"DBQ=" 赋值给变量iFlag
- Case "OLEDB" '用于判断缓存连接信息中的数据连接方式,如果是OLEDB方式
- iFlag = "Source=" '将"DBQ=" 赋值给变量iFlag
- Case Else
- Exit Sub
- End Select
- ' iFlag = "第一次"
- iStr = Split(Split(strCon, iFlag)(1), "\第一次")(0) '在变量strCon中截取文件路径信息
- iPath = ThisWorkbook.Path '获取当前活动工作簿的完全路径
- With ActiveSheet.QueryTables(1) '替换数据透视表中缓存信息中的文件完全路径
- .Connection = VBA.Replace(strCon, iStr, iPath)
- .CommandText = VBA.Replace(.CommandText, iStr, iPath)
- End With
- End Sub
复制代码 看了JSSY版主的自动适应路径后,想实现多工作簿适应路径,一直没有成功,今天向师傅请教,终于解决了 感谢师傅KKITT
说明:将文件解压后,无论文件移动到什么地方,都可以自动适应路径.我在03和07测试下成功,10卸载了,无法测试,有10的帮忙测试 |
评分
-
1
查看全部评分
-
|