Excel VBA:数据透视表立方字段事实数据表名称?
我正在使用一个大型OLAP多维数据集,我正在构建非常基本的搜索功能来帮助我解析数据量(约30个事实表、30个维度,加上计算的度量值),但我遇到了一个有趣的问题。当我访问事实表成员或计算度量值的Excel VBA:数据透视表立方字段事实数据表名称?,vba,excel,cube,olap-cube,Vba,Excel,Cube,Olap Cube,我正在使用一个大型OLAP多维数据集,我正在构建非常基本的搜索功能来帮助我解析数据量(约30个事实表、30个维度,加上计算的度量值),但我遇到了一个有趣的问题。当我访问事实表成员或计算度量值的CubeField.Name属性时,它以[Measures].[FieldName]的形式出现,而不是将我指向正确的事实表/计算度量值文件夹。 以下是我使用的代码: Sub X() Dim pvtTable As PivotTable Dim oCubeField As CubeField
CubeField.Name
属性时,它以[Measures].[FieldName]
的形式出现,而不是将我指向正确的事实表/计算度量值文件夹。以下是我使用的代码:
Sub X()
Dim pvtTable As PivotTable
Dim oCubeField As CubeField
Set pvtTable = ActiveSheet.PivotTables(1)
For Each oCubeField In pvtTable.CubeFields
If InStr(LCase(oCubeField.Name), "spread") > 0 Then
Debug.Print oCubeField.Parent & ": " & oCubeField.Name
End If
Next
End Sub
有没有关于我如何实际获取事实表名称的想法?或者计算出的度量值的文件夹结构?谢谢 试试
oCubeField.Value
也许吧。CubeField对象的显示为:
Name返回表示对象名称的字符串值
Value返回表示指定字段名称的字符串值
不幸的是,您不能这样做,因为度量表达式可能链接到几个事实表 但您可以使用OpenSchema()函数查询和分析多维数据集元数据 大概是这样的:
Sub GetMeasuresList()
Const adSchemaMeasures = 36
Set ADOCon = ActiveCell.PivotTable.PivotCache.ADOConnection
Set RecSet = ADOCon.OpenSchema(adSchemaMeasures)
While Not RecSet.EOF
Debug.Print RecSet!MEASURE_NAME & ": " & RecSet!EXPRESSION
RecSet.MoveNext
Wend
End Sub
是的,也试过了——运气不好。在这个立方体中,它产生相同的结果。