将工作簿对象传递给变量

时间:2013-10-10 09:31:02

标签: excel excel-vba excel-2007 vba

我有这个代码,它给了我一个编译错误:预期的功能或变量 我该如何正确编码。

Sub test()

Dim wb As Workbook
Dim FiletoOpen

FiletoOpen = Application.GetOpenFilename(filefilter:="Text Files (*.csv), *.csv", MultiSelect:=False)

Set csv_wb = Workbooks.OpenText(Filename:=FiletoOpen, startRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 2), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1)))

End Sub

如果我使用Set csv_wb = Workbooks.Open (FiletoOpen),它可以正常工作 但是文件中的特定字段需要采用Text格式 所以我不能用这个。但是当我使用上述内容时,它会给我错误 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您已声明wb,但使用csv_WB尝试此操作。

<强> UNTESTED

Sub test()
    Dim csv_WB As Workbook
    Dim FiletoOpen

    FiletoOpen = Application.GetOpenFilename(filefilter:="Text Files (*.csv), *.csv", MultiSelect:=False)

    If FiletoOpen = False Then Exit Sub

    Workbooks.OpenText Filename:=FiletoOpen, startRow:=1, DataType:=xlDelimited, TextQualifier:= _
                xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
                , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
                Array(2, 1), Array(3, 2), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
                Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1))

    Set csv_WB = ActiveWorkbook

End Sub
相关问题