Формат даты запроса мощности в VBA в Excel

#excel #vba #date #format #powerquery

#excel #vba #Дата #формат #powerquery

Вопрос:

Я работаю над power query в VBA в Excel, включая некоторый формат даты. Для загрузки и закрытия, и я выбираю лист, все отлично работает с форматом даты; однако, когда я запускаю код vba, формат даты может отображаться некорректно (он показывает 44185 вместо 12/20/2020)… Я полагаю, это происходит из кода VBA … у кого-нибудь есть идеи? Большое спасибо за вашу помощь!! Код VBA :

  With Data.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=" amp; qry.Name _
        , Destination:=Data.Range("$B$1")).QueryTable
        .CommandType = xlCmdDefault
        .CommandText = Array("SELECT * FROM [" amp; qry.Name amp; "]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = False
        .Refresh BackgroundQuery:=False
        
        
    End With
 

Комментарии:

1. Числа являются допустимыми значениями даты. Просто примените формат даты, который вы предпочитаете, к рассматриваемым ячейкам / диапазону.

Ответ №1:

Попробуйте установить NumberFormat свойство:

 .NumberFormat = "yyyy-MM-dd"
 

Комментарии:

1. большое спасибо за вашу помощь! Но я не хочу использовать этот способ (мне нужно найти столбец, чтобы определить это свойство). Чего я не понимаю, так это того, что при использовании готового способа (загрузка из запроса) он хорошо показывает дату, но не с помощью кода VBA.

2. Я не понимаю, что вы говорите. Вы должны установить формат, чтобы видеть дату, иначе вы увидите ее как количество дней, прошедших с 1/1/1900. Подробнее об этом можно прочитать здесь: excelcampus.com/functions/how-dates-work-in-excel

3. Привет, извините, я только что узнал, что нет способа сделать то, что я хочу …. так что вы правы, я должен найти столбец и определить свойство. Еще раз спасибо за вашу помощь!