以下是我在Excel中运行和发布查询结果的代码。代码将NULL粘贴为0.我希望NULL为a 粘贴为" NULL"。我认为某种类型的粘贴值可以起作用,或者从#34; .QueryTable"中更改我的表格。可能有帮助。我不知道该怎么做。有什么建议吗?
'Import Data
With queryOutputWS.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DRIVER=SQL Server;SERVER=W51SQP-********;Trusted_Connection=Yes;APP=Microsoft Office 2010" _
), Array(";DATABASE=*****")), Destination:=queryOutputWS.Range("A1")).QueryTable
.CommandText = myQuery
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.ListObject.DisplayName = "Query"
.Refresh BackgroundQuery:=False
End With
queryOutputWS.ListObjects("Query").Unlist
答案 0 :(得分:1)
我认为更改SQL查询而不是VBA代码更容易。如果您稍后发布查询代码,我可以看看我在想什么,但是,你可以试试这个:
假设您要查询和更改值的列名为Column1
在您的查询中,将SELECT [...,] Column1 [,...] FROM ...
更改为:
SELECT [...,] IIF(Column1 IS NULL, 'NULL', Column1) [,...] FROM...
如果有帮助,请告诉我!