Новые данные, добавленные во внешний источник, не отображаются автоматически в сводной таблице - PullRequest
0 голосов
/ 23 января 2020

Я использую Excel 2019. Я подключаюсь к внешнему источнику данных, который является текстовым файлом. Данные сохраняются по дате и импортируются в сводную таблицу, где дата отображается в виде поля столбца. Данные ежедневно добавляются к источнику. Всякий раз, когда добавляются новые данные, я ссылаюсь sh PivotCache. Моя проблема в том, что после обновления PivotCache я вижу новые даты в раскрывающемся меню сводной таблицы, но новые данные не отображаются в конце сводной таблицы на листе автоматически. Я должен вручную добавить эти даты.

Очевидная проблема заключается в том, что один столбец отображается пустым (дата недоступна). Я прилагаю код для вашей ссылки.

 Sub DataConnectionCreation()
ActiveWorkbook.Queries("ImprovedTest").Delete
    ActiveWorkbook.Queries.Add Name:="ImprovedTest", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Csv.Document(File.Contents(""E:\Market\Combine Test\ImprovedTest.txt""),[Delimiter="","", Columns=16, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & "    #""Promoted Headers"" = Table.PromoteHeaders(Source, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(#""Promoted Headers"",{{""SC_CODE"", Int64.Type}, {""SC_NAME"", ty" & _
        "pe text}, {""SC_GROUP"", type text}, {""SC_TYPE"", type text}, {""OPEN"", type number}, {""HIGH"", type number}, {""LOW"", type number}, {""CLOSE"", type number}, {""LAST"", type number}, {""PREVCLOSE"", type number}, {""NO_TRADES"", Int64.Type}, {""NO_OF_SHRS"", Int64.Type}, {""NET_TURNOV"", Int64.Type}, {""TDCLOINDI"", type text}, {""Date"", type date}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Changed Type"""

 myworkbook = ActiveWorkbook.Name
 myworksheet = ActiveWorkbook.ActiveSheet.Name

    Workbooks(myworkbook).Connections.Add2 "Query - ImprovedTest", _
        "Connection to the 'ImprovedTest' query in the workbook.", _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=ImprovedTest;Extended Properties=""""" _
        , "SELECT * FROM [ImprovedTest]", 2

If Worksheets(myworksheet).PivotTables.Count > 0 Then
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Date")
        .Visible = False
    End With

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Date")
        .ShowAllItems = True ' Displays all the items in pivotfield "Date"
    End With

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Date")
        .PivotItems("(blank)").Visible = False ' Hides records where "Date" is (Blank)
    End With

Else
.....
Endif
End Sub
...