2

マクロを使用してテキストを列に変換しようとしていますが、それができません。これを実現するためにマクロを記録しようとしましたが、テキストから列へのVBA関数が選択、たとえば範囲A7:A50000を動的に選択できる方法はありますか?またはさらに良いA7:lastnonemptyセル?

ありがとう、

参考までに、テキストを数式に変換するためにこれを行う必要があるため、区切り文字は重要ではありません

これが私のコードです

Range("O6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("O6"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True
4

2 に答える 2

13

これを試して

Sub Txt2Col()
    Dim rng As Range

    Set rng = [C7]
    Set rng = Range(rng, Cells(Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, ' rest of your settings

更新:別のシートで動作するボタンクリックイベント

Private Sub CommandButton1_Click()
    Dim rng As Range
    Dim sh As Worksheet

    Set sh = Worksheets("Sheet2")
    With sh
        Set rng = .[C7]
        Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

        rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote,  _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=True, 
        Space:=False, 
        Other:=False, _
        FieldInfo:=Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat), Array(3, xlGeneralFormat)), _
        TrailingMinusNumbers:=True
    End With
End Sub

ステートメント オブジェクトを参照する.(例: ) に注意してください。.RangeWith

于 2012-09-14T20:14:30.160 に答える