[英]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.