#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. Привет, извините, я только что узнал, что нет способа сделать то, что я хочу …. так что вы правы, я должен найти столбец и определить свойство. Еще раз спасибо за вашу помощь!