我是VBA的新手,我需要从数据库中获取一些行。
问题是,第一次选择时的日期以dd.mm.yyyy
格式显示,但在一段时间后,日期显示为整数,如42814
或类似的东西。
以下是2张图片,以便更好地理解
这里是代码
Application.CutCopyMode = False
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=OpsApps;UID=Alligatoah;Trusted_Connection=Yes;APP=Microsoft Office 2016;WSID=AT000616;DATABASE=OpsApps" _
, Destination:=Range("$A$1")).QueryTable
.CommandText = Array( _
"SELECT TV.Customer, TV.KNUM, TV.DMRF, TV.BoM, TV.Costs, TV.PlnLaunch, TV.Date, TV" _
, _
"_.ActualCosts" & Chr(13) & "" & Chr(10) & "FROM OpsApps.dbo.TV TV" & Chr(13) & "" & Chr(10) & "WHERE (TV.SystemMCSDate>={ts '2017-01-01 00:00:00'})" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_VillachOpsApps"
.Refresh BackgroundQuery:=False
End With
有人可以帮忙吗? 提前谢谢。
答案 0 :(得分:1)
您想要设置范围的NumberFormat
属性
例如,如果我在单元格中有18/08/17
,然后在Excel功能区中手动将其NumberFormat
转换为“常规”,我们会看到42965
。您可以使用如下字符串在VBA中指定此格式:
' Use your column here, could also use a table range
ThisWorkbook.Sheets("MySheet").Columns("F").NumberFormat = "dd.mm.yyyy"