2011-11-26 174 views
2

我有代码来选择每个工作表下的数据透视表名称。我想知道如何获取每个数据透视表的数据连接名称。从excel获取连接名称vba

Dim ws As Worksheet 
Dim pvt As PivotTable 
Dim pvf As PivotField 
Dim pvi As PivotItem 
Dim x As String 
Dim conn As WorkbookConnection 

Application.ScreenUpdating = False 

Worksheets("Log").Activate 
Columns("H:L").Select 
i = 1 
For Each ws In ActiveWorkbook.Worksheets 
    If ws.PivotTables.Count > 0 Then 
    For Each pvt In ws.PivotTables 
     ActiveCell.Offset(i, 0) = ws.Name 
     ActiveCell.Offset(i, 1) = pvt.Name 
     'ActiveCell.Offset(i, 2) = conn.Name 
     i = i + 1 
    Next pvt 
    End If 
Next ws 
+0

您能指定“数据连接名称”的含义,并且可以粘贴数据的前几行吗? – abcde123483

回答

1

为了得到当前透视表的数据连接的名称,使用此:

pvt.PivotCache.WorkbookConnection 

注意,如果数据透视表中不使用工作簿的连接,所以你应该检查它会抛出一个错误第一个:

If pvt.PivotCache.SourceType = xlExternal Then 
    ActiveCell.Offset(i, 2) = pvt.PivotCache.WorkbookConnection 
End If 
+0

如果这样做,请选择左侧的箭头接受答案(注意你是新的,以防万一你不知道)。 :) – aevanko

+0

嗨Issun,非常感谢你的帮助。有用。 –