Доброе время суток.
Цитата |
---|
sokol92 написал: cannot be created |
Ну, тут как бы не всё так грустно, по крайней мере в Excel 365, особенно если про Power Query. С удалением, да в объектной модели Power Pivot, пока швах. С переименованием объектов, забавно Dummy1
Так и не наковырял, как вычисляемый столбец в таблицу подженить
Код |
---|
Public Sub JustTryIt()
Dim sPQL As String, wbQuery As WorkbookQuery
Dim wbConn As WorkbookConnection, pTable As ModelTable
Dim pMeasuure As ModelMeasure
sPQL = "let" & vbLf & " items = {1..100},"
sPQL = sPQL & vbLf & " repeat = List.Transform(items, each List.Numbers(1000, 100, 100)),"
sPQL = sPQL & vbLf & " members = List.Combine(repeat),"
sPQL = sPQL & vbLf & " toTable = Table.FromColumns({members}, type table [Column1 = Int64.Type]),"
sPQL = sPQL & vbLf & " add = Table.AddColumn(toTable, ""Column2"", each try 1000 * Number.Random() otherwise null, Number.Type)"
sPQL = sPQL & vbLf & "in" & vbLf & " add"
'create power query query
Set wbQuery = ThisWorkbook.Queries.Add("TPQLData", sPQL, "This is auto geterated query")
'change created query
wbQuery.Formula = "// this is this query description in its code" & vbLf & wbQuery.Formula
ThisWorkbook.Model.Initialize
Set wbConn = ThisWorkbook.Connections.Add2("TPQLDataPP", "Add that query to model", "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=TPQLData;Extended Properties=""""", _
"Select * From [TPQLData]", xlCmdSql, True, False)
Set pTable = ThisWorkbook.Model.ModelTables(1)
'excelent change of name
pTable.Dummy1 wbQuery.Name
Set pMeasuure = ThisWorkbook.Model.ModelMeasures.Add("Just Sum", pTable, "SUM('" & wbQuery.Name & "'[Column2])", ThisWorkbook.Model.ModelFormatDecimalNumber(True, 2), "created by vba measure")
End Sub |
Посмотрю завтра, что из этого в Excel 2016 действует.
Updated
Посмотрел. Код полностью отработал.
P. S. Глючит, если открыто окно Power Pivot.