|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 luoguangguo 于 2019-11-4 11:47 编辑
Private Sub Workbook_Open()
Dim strCon As String, iPath As String, i As Integer, iFlag As String, iStr As String
strCon = ActiveSheet.PivotTables(1).PivotCache.Connection
Select Case Left(strCon, 5)
Case " ODBC; "
iFlag = "DBQ="
Case " OLEDB; "
iFlag = "Source="
Case Else
Exit Sub
End Select
iStr = Split(Split(strCon, iFlag)(1), ";")(0)
iPath = Left(iStr, InStrRev(iStr, "\") - 1)
With ActiveSheet.PivotTables(1).PivotCache
.Connection = VBA.Replace(strCon, iPath, ThisWorkbook.Path)
.CommandText = VBA.Replace(.CommandText, iPath, ThisWorkbook.Path)
End With
End Sub
------------------------------------------------------------------------------------------------------------------------
在VBAproject的thisworkbook中输入了如示代码。
Q1. 连接地址不能自动改变。如果直接用iFlag = "DBQ="代替整个Select case语句,整个代码可以正常执行。是select case 语句有问题吗?
Q2. 在进行调试时,用逐行语句运行(F8),执行到Exit Sub行就停了,之后的语句未能执行。是遇到sub终止类的就停止?后面的语句怎么调试呢?
请求帮助
|
|