2013-10-10 6 views
1

У меня есть этот код, и он дает мне ошибку компиляции: ожидаемая функция или переменная.
Как это правильно закодировать.Передача объекта рабочей книги переменной

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.
Так что я не могу использовать это. Но когда я использую вышеизложенное, это дает мне ошибку.
Любая помощь будет высоко оценена.

ответ

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 
+1

Option Explicit? – pnuts

+0

@sid Это была опечатка. этот код изначально является частью более крупного кода. Я просто передал его, чтобы изолировать эту проблему. Я уже редактировал сообщение. Благодарю. – L42

+0

@ L42: Да, я это понял. Я обновил свой пост –

Смежные вопросы