繁体   English   中英

Excel VBA中的“文本到列”问题

[英]Text to Columns issue in excel 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

您需要完全限定Destination:=Range("F1") 如果不是,它将是ActiveSheet Range("F1") 这可能是错误的,因为在xlWS应为Range("F1")

所以

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM