2015-10-14 82 views
0

我有一个故障排除用VBA为Excel:当我使用VBA:QueryTables:怎么没有考虑到TextFileOtherDelimiter

With ActiveSheet.QueryTables.Add(Connection:=ConnString, Destination:=SomeRange) 
    .Name = _ 
    " " 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = False 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .TextFilePromptOnRefresh = False 
    .TextFilePlatform = 65001 
    .TextFileStartRow = 1 
    .TextFileParseType = xlDelimited 
    .TextFileTextQualifier = xlTextQualifierDoubleQuote 
    .TextFileConsecutiveDelimiter = False 
    .TextFileTabDelimiter = False 
    .TextFileSemicolonDelimiter = False 
    .TextFileCommaDelimiter = True 
    .TextFileSpaceDelimiter = False 
    .TextFileColumnDataTypes = Array(1) 
    .TextFileDecimalSeparator = "," 
    .TextFileTrailingMinusNumbers = True 
    .Refresh BackgroundQuery:=False 
End With 

导入请求自动执行这一进口“其他分隔符”,我要求就手动导入。

即我手动导入使用文件“ - ”作为分隔符和宏会表现得好像它包括行:

.TextFileOtherDelimiter = "-" 

我试图用

.TextFileOtherDelimiter = False 

但不起作用,因为它的行为如下:

.TextFileOtherDelimiter = "F" 

我的问题:如何指定此导入应该只能用“,”分隔符而不是其他任何一个(不管其他任何其他导入是否可以在机器上出现过?)

回答

0

为了将来的参考,我没有找到强制其他分隔符的方式,但以下两个解决方法似乎工作:

  • 迫使otherdelimiter相同的值作为第一个(如果你没有第一限定将无法正常工作)

    .TextFileOtherDelimiter = "," 
    
  • 使用定界符永远不会出现在文件中(如果是纽约字符,但第一个分隔符可以出现在文件中)

    .TextFileOtherDelimiter = "|" 
    

由于这两个两个变通的解决了在一般情况下这个问题,我不把它标记为适合