TextToColumns宏无效

时间:2014-10-09 15:59:16

标签: excel-vba vba excel

考虑这个Excel VBA宏:

Option Compare Text

Public Sub ColumnATextToColumns()

    Dim rng As range

    Set rng = Columns("A:A")

    Dim nrColumns As Integer
    nrColumns = CountCharacter(Cells(1, 1), "|") + 1

    Dim FieldInfoVal As Variant
    ReDim FieldInfoVal(1 To nrColumns)

    For i = 1 To nrColumns

        FieldInfoVal(i) = "Array(" & i & ", 2)"

    Next i

    rng.TextToColumns Destination:=range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=FieldInfoVal, _
        TrailingMinusNumbers:=True

End Sub

Public Function CountCharacter(ByVal value As String, ByVal ch As String) As Integer

  Dim char As String
  Dim cnt As Integer

  cnt = 0

    For i = 1 To Len(value)
        char = Mid(value, i, 1)
        If char = ch Then cnt = cnt + 1
    Next i

  CountCharacter = cnt

End Function

它编译并运行但没有任何反应 没有动态创建FieldInfo值的宏可以工作:

Columns("A:A").Select
Selection.TextToColumns Destination:=range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, _
        2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 2), Array(12 _
        , 2), Array(13, 2), Array(14, 2), Array(15, 2), Array(16, 2)), TrailingMinusNumbers:= _
        True

0 个答案:

没有答案