0

我有用于一张纸的分隔列的代码。如何使此代码不仅仅用于带有循环的工作表?

Sub Macro1()

    Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="_", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
    Selection.NumberFormat = "dd-mm-yyyy;@"

End Sub
4

2 回答 2

1
Sub t()
    Dim sh As Worksheet
    For Each sh In ActiveWorkbook.Sheets
        'do what you want, for example, 
        Range("A1:B10").TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
            :="_", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
        Selection.NumberFormat = "dd-mm-yyyy;@"
    Next
End Sub

但是,您不应该使用Selection. 您应该使用 arange代替,例如Range("A1:B10")

于 2013-11-01T05:49:09.137 回答
0

像这样试试

Sub forEachWs()
Dim x As Long
Dim ws As Sheets

For x = 1 To 12'<--to as how many is required
ThisWorkbook.Sheets(x).Activate
    Call Macro1  '<---the name of your macro
    Range("A2").Select
End Sub
于 2016-05-31T15:55:32.133 回答