Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cria um relatório de tabela dinâmica baseado em um objeto PivotCache. Devolve um objeto de tabela dinâmica .
Sintaxe
expressão. CreatePivotTable (TableDestination, TableName, ReadData, DefaultVersion)
expressão Uma variável que representa um objeto PivotCache .
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| TableDestination | Obrigatório | Variant | A célula no canto superior esquerdo do intervalo de destino do relatório de tabela dinâmica (o intervalo na folha de cálculo onde será colocado o relatório de tabela dinâmica resultante). O intervalo de destino deve estar em uma planilha na pasta de trabalho que contém o objeto PivotCache especificado pela expressão. |
| TableName | Opcional | Variant | O nome do novo relatório de tabela dinâmica. |
| ReadData | Opcional | Variant | Verdadeiro para criar uma cache de tabela dinâmica que contém todos os registos da base de dados externa; esta cache pode ser muito grande. False para habilitar a configuração de alguns dos campos como campos de página com base em servidor antes dos dados serem lidos. |
| DefaultVersion | Opcional | Variant | A versão padrão do relatório de tabela dinâmica. |
Valor de retorno
PivotTable
Comentários
Para obter uma forma alternativa de criar um relatório de tabela dinâmica com base numa cache de tabela dinâmica, veja o método Add do objeto Tabelas Dinâmicas .
Exemplo
Este exemplo cria uma nova cache de tabela dinâmica com base num fornecedor OLAP e, em seguida, cria um novo relatório de tabela dinâmica com base na cache na célula A3 na folha de cálculo ativa.
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = _
"OLEDB;Provider=MSOLAP;Location=srvdata;Initial Catalog=National"
.CommandType = xlCmdCube
.CommandText = Array("Sales")
.MaintainConnection = True
.CreatePivotTable TableDestination:=Range("A3"), _
TableName:= "PivotTable1"
End With
With ActiveSheet.PivotTables("PivotTable1")
.SmallGrid = False
.PivotCache.RefreshPeriod = 0
With .CubeFields("[state]")
.Orientation = xlColumnField
.Position = 1
End With
With .CubeFields("[Measures].[Count Of au_id]")
.Orientation = xlDataField
.Position = 1
End With
End With
Este exemplo cria uma nova cache de tabela dinâmica com uma ligação ADO ao Microsoft Jet e, em seguida, cria um novo relatório de tabela dinâmica com base na cache na célula A3 na folha de cálculo ativa.
Dim cnnConn As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Dim cmdCommand As ADODB.Command
' Open the connection.
Set cnnConn = New ADODB.Connection
With cnnConn
.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0"
.Open "C:\perfdate\record.mdb"
End With
' Set the command text.
Set cmdCommand = New ADODB.Command
Set cmdCommand.ActiveConnection = cnnConn
With cmdCommand
.CommandText = "Select Speed, Pressure, Time From DynoRun"
.CommandType = adCmdText
.Execute
End With
' Open the recordset.
Set rstRecordset = New ADODB.Recordset
Set rstRecordset.ActiveConnection = cnnConn
rstRecordset.Open cmdCommand
' Create a PivotTable cache and report.
Set objPivotCache = ActiveWorkbook.PivotCaches.Add( _
SourceType:=xlExternal)
Set objPivotCache.Recordset = rstRecordset
With objPivotCache
.CreatePivotTable TableDestination:=Range("A3"), _
TableName:="Performance"
End With
With ActiveSheet.PivotTables("Performance")
.SmallGrid = False
With .PivotFields("Pressure")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Speed")
.Orientation = xlColumnField
.Position = 1
End With
With .PivotFields("Time")
.Orientation = xlDataField
.Position = 1
End With
End With
' Close the connections and clean up.
cnnConn.Close
Set cmdCommand = Nothing
Set rstRecordSet = Nothing
Set cnnConn = Nothing
Este exemplo utiliza o WorkbookConnection já existente.
'Get WorkbookConnection object
Dim conn As WorkbookConnection
Set conn = ActiveWorkbook.Connections("MyConnectionName")
'Declare temp variables
Dim connStr As String
Dim sqlStr As String
'Store connection string and command text in variables depends on connection type
If conn.Type = xlConnectionTypeODBC Then
connStr = conn.ODBCConnection.Connection
sqlStr = conn.ODBCConnection.CommandText
End If
If conn.Type = xlConnectionTypeOLEDB Then
connStr = conn.OLEDBConnection.Connection
sqlStr = conn.OLEDBConnection.CommandText
End If
'Create PivotCache
Dim pcache As pivotCache
Set pcache = ActiveWorkbook.PivotCaches.Create(xlExternal, conn)
'Then we need to get recordset to create pivot table
Dim adodb_conn As Object
Dim rs As Object
Set adodb_conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
adodb_conn.Open connStr
rs.Open sqlStr, adodb_conn
Set pcache.Recordset = rs
'When CreatePivotTable method called the linked WorkbookConnection is losing connection string and command text
Set pvt = pcache.CreatePivotTable(TableDestination:=Sheets("MySheetName").Cells(1, 1), TableName:="MyPivotTableName")
rs.Close
adodb_conn.Close
'Restore CommandText and connection string
pcache.CommandText = sqlStr
pcache.Connection = connStr
' Now you have PivotTable that linked with yours WorkbookConnection
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.