excel VBA中的文本到列问题

时间:2016-09-12 09:37:02

标签: excel excel-vba vba

我正在尝试创建一个宏,当在一个工作簿中运行时将在后台打开另一个工作簿,将此新打开的工作簿的F列从文本更改为日期,保存更改,然后关闭刚刚打开的工作簿。在我正在尝试的代码中,我不断收到错误消息'运行时错误' 1004':Range类的TextToColumns方法失败'。你知道什么是错的,我怎么解决它?

Sub Test()

Dim xlApp As New Excel.Application
Dim xlWB As Excel.Workbook
Dim xlWS As Excel.Worksheet

xlApp.Visible = False

Set xlWB = xlApp.Workbooks.Open("directory_file_to_open")

Set xlWS = xlWB.Worksheets("worksheet_of_data")
xlWS.Unprotect

    xlWS.Columns("F:F").TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True

Set xlWS = Nothing
xlApp.DisplayAlerts = False
xlWB.Close True
Set xlWB = Nothing
xlApp.Quit
Set xlApp = Nothing

End Sub

1 个答案:

答案 0 :(得分:1)

您需要完全符合Destination:=Range("F1")的资格。如果不是,则Range("F1")中会ActiveSheet。这可能是错误的,因为它应该是Range("F1")中的xlWS

所以

xlWS.Columns("F:F").TextToColumns Destination:=xlWS.Range("F1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 4), TrailingMinusNumbers:=True