当前位置: 代码迷 >> VBA >> 初学VBA请大家多多关照(关于OpenText),该怎么解决
  详细解决方案

初学VBA请大家多多关照(关于OpenText),该怎么解决

热度:7366   发布时间:2013-02-26 00:00:00.0
初学VBA请大家多多关照(关于OpenText)
一个关于OpenText的问题
我写了一个打开文本文件的函数,但是就是OpenText提示我缺少参数或者变量没有定义。
我真的不知道我错在什么地方了,请大伙教教新人吧
Function openTextFile(ByVal filePath As String) As Excel.Workbook
  Dim resPath As String
   
  resPath = filePath
  If Dir(resPath) = "" Then
  openTextFile = Nothing
  Return
  End If
  Set openTextFile = workbooks.openText(Filename:=resPath, _
  Origin:=xlWindows, _
  StartRow:=1, _
  DataType:=xlDelimited, _
  TextQualifier:=xlDoubleQuote, _
  ConsecutiveDelimiter:=False, _
  Tab:=True, _
  Semicolon:=False, _
  Comma:=False, _
  Space:=False, _
  Other:=False, _
  FieldInfo:=Array(1, 1), _
  TrailingMinusNumbers:=True)
 End Function

------解决方案--------------------------------------------------------
expression.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)

expression 必需。该表达式返回“应用于”列表中的一个对象。

FileName String 类型,必需。指定要载入并作分列处理的文件名。

Origin Variant 类型,可选。指定文本文件来源。可为以下 XlPlatform 常量之一:xlMacintosh、xlWindows 或 xlMSDOS。此外,它还可以是代表所需代码页的代码页编号的整数。例如,“1256”说明源文本文件的编码是阿拉伯语 (Windows)。如果省略该参数,则此方法就会使用“文本导入向导”中“文件原始格式”选项的当前设置。

StartRow Variant 类型,可选。作分列处理的起始行号。默认值为 1。

DataType Variant 类型,可选。在文件中指定数据的列格式。可为以下 XlTextParsingType 常量之一:xlDelimited 或 xlFixedWidth。如果未指定该参数,则 Microsoft Excel 将在打开此文件时确定列格式。

TextQualifier XlTextQualifier 类型,可选。指定文本识别符。

XlTextQualifier 可为以下 XlTextQualifier 常量之一。 
xlTextQualifierDoubleQuote 默认值 
xlTextQualifierNone 
xlTextQualifierSingleQuote 

ConsecutiveDelimiter Variant 类型,可选。如果该值为 True,则将连续的分隔符号作为一个分隔符号处理。默认值为 False。

Tab Variant 类型,可选。如果该值为 True,则将分隔符设为制表符(DataType 必须设为 xlDelimited)。默认值为 False。

Semicolon Variant 类型,可选。如果该值为True,则将分隔符设为分号(DataType 必须设为 xlDelimited)。默认值为 False。

Comma Variant 类型,可选。如果该值为 True,则将分隔符设为逗号(DataType 必须设为 xlDelimited)。默认值为 False。

Space Variant 类型,可选。如果该值为 True,则分隔符设为空格(DataType 必须设为 xlDelimited)。默认值为 False。

Other Variant 类型,可选。如果该值为True,则将分隔符设为由 OtherChar 参数指定的字符(DataType 必须设为 xlDelimited)。默认值为 False。

OtherChar Variant 类型,可选(如果 Other 为 True,则必需)。当 Other 为 True 时,指定分隔字符。如果指定了多个字符,则将字符串中的第一个字符作为分隔符,并忽略其余的字符。

FieldInfo xlColumnDataType 类型,可选。包含各数据列分析信息的数组。对本参数的解释取决于 DataType 值。如果此数据由分隔符分隔,本参数为由两元素数组组成的数组,其中每个两元素数组指定一个特定列的转换选项。第一个元素为列标(从 1 开始),第二个元素是 XlColumnDataType 常量之一,用以指定如何分析该列。

XlColumnDataType 可为以下 XlColumnDataType 常量之一。 
xlGeneralFormat 常规 
xlTextFormat 文本 
xlMDYFormat MDY 日期

xlDMYFormat DMY 日期

xlYMDFormat YMD 日期

xlMYDFormat MYD 日期

xlDYMFormat DYM 日期

xlYDMFormat YDM 日期

xlEMDFormat EMD 日期

xlSkipColumn 忽略列
 

只有在安装并选定了台湾地区语言支持时才可使用 xlEMDFormat。xlEMDFormat 常量指定使用台湾地区纪年日期。

列识别符可为任意顺序。输入数据中如果某列没有列识别符,则用常规设置对该列进行分列处理。

注释

在指定要跳过的列时,必须明确说明其余各列的类型,否则数据不能正确拆分。
如果数据中包含可识别的日期,则工作表中单元格的格式就会设置为“日期”,即便为该列设置的格式为“常规”。此外,如果您为某一列指定了以上日期格式中的一种格式,而数据中并不包含可识别的日期,那么工作表中单元格的格式为“常规”。
本示例将第三列作为 MDY(例如,01/10/1970) 处理,第一列作为文本处理,源数据中其他列以“常规”设置进行分列处理。

Array(Array(3, 3), Array(1, 2))

如果源数据为定宽列,则每个两元数组的第一个元素指定起始元素在列中的位置,(用整数表示,第一个字符为 0 (零)),第二个元素用 0 到 9 的数字指定分列选项,如前表所示。