[英]VBA type mismatch error in QueryTables
我在第8行遇到類型不匹配范圍錯誤。請問有人可以這么解釋我在做什么錯嗎?
謝謝
Set objExcel = CreateObject("Excel.application")
Set objWorkbook = objExcel.Workbooks.Add()
Set objSheet = objWorkbook.Worksheets.Add
objExcel.Visible = True
objExcel.DisplayAlerts = True
objExcel.Workbooks.Add(1)
With objExcel.ActiveSheet.QueryTables.Add(Connection="TEXT;C:\temp\file.csv", Destination=Range("$A$1"))
'.CommandType = 0
.Name = "test_ITS_ExtractX"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery=False
End With
objExcel.ActiveWorkbook.SaveAs Filename="c:/temp/file.xlsx", FileFormat=xlOpenXMLWorkbook, CreateBackup=False
objExcel.DisplayAlerts = True objExcel.Quit
嘗試...
With objExcel.ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\temp\file.csv", Destination:=objExcel.ActiveSheet.Range("$A$1"))
希望這可以幫助!
如果你的代碼實際上是寫在VBA變種之一,已命名的參數應該使用指定:=
,而不是只=
。 當我運行您的代碼時,這會生成“類型不匹配”錯誤。
您還有一個不合格的Range
對象(請參閱Domenic的答案 ),一旦糾正語法錯誤,這將導致問題。
因此正確的行應為:
With objExcel.ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\temp\file.csv", _
Destination:=objExcel.ActiveSheet.Range("$A$1"))
您以后的一行之一應該是
objExcel.ActiveWorkbook.SaveAs Filename:="c:\temp\file.xlsx", _
FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
我才注意到
.Refresh BackgroundQuery:=False
(注意:請確保xlOpenXMLWorkbook
常量在您正在其中運行的任何應用程序中均可用。否則,您需要自己為其分配正確的值xlInsertDeleteCells
等也將適用此xlInsertDeleteCells
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.