【问题标题】:Error code 'Subscript out of range' when running 'Text to column' macro运行“文本到列”宏时出现错误代码“下标超出范围”
【发布时间】:2017-10-31 05:40:19
【问题描述】:

我正在尝试将一系列日期从文本转换为“日期”格式,它们位于“主”表的 B 列中。

我创建了一个宏,但我想从任何工作表运行它,而不是在主工作表上。但是,错误代码“下标超出范围”不断出现,突出显示 With Sheets("sh2")。我到目前为止的代码是:

Sub DateFormatUpdate()

    DateFormatUpdate Macro
    Updates the format of the dates in the master data sheet from 'General' to 'Date'

    Dim sh2 As Worksheet
    Set sh2 = ActiveWorkbook.Sheets("Master")

    With Sheets("sh2")
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns Destination:=Range("B2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(1, 5), TrailingMinusNumbers:=True
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns Destination:=Range("C2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(1, 5), TrailingMinusNumbers:=True
    Range("R9").Select
    End With

End Sub

我对 VBA 很陌生,所以如果这实际上是一个简单的问题,我深表歉意!感谢您的帮助!

【问题讨论】:

  • 你有With 语句,但永远不要用它来锚定你的范围。在With 中,您需要使用.Range/Cells 锚定到该工作表/变量。 IE。 With sh2 // .Range("B2").Select ...。另外,请注意,最好avoid using .Select/.Activate`
  • ^^ 加上您不能Select 工作表上的范围,除非它是活动工作表。这是摆脱Select 的另一个原因,而不是Activate 工作表的原因。

标签: vba excel text-to-column


【解决方案1】:

代替

With Sheets("sh2")

尝试使用

With sh2

因为您已将 sh2 声明为工作表变量。

【讨论】:

  • 您好!谢谢你回来。然后突出显示 Selection.TextToColumns Destination:=Range("B2"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ Semicolon:=False, Comma:=False, Space: =True, Other:=False, FieldInfo _ :=Array(1, 5), TrailingMinusNumbers:=True 错误代码为 1004:Microsoft Excel 一次只能转换一列。仅选择一列中的单元格再试一次。
  • 那是不同的错误。我注意到的一件事是,如果您分隔 B 列,那么它将覆盖内容到您接下来要分隔的 C 列。对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
相关资源
最近更新 更多