2017-02-15 9 views
1

私はvbaを使用して多くのブックで列にテキストを実行したいと思います。テキストを列にする多くのExcelブックを

私は以下のコードを試しましたが、 "Testmac" wb以外のすべてのものを修正したいのですが、1つのブックのみで作業しています。あなたのコードColumns("A:A")

Sub sdptest() 

Dim w As Workbook 

For Each w In Workbooks 
If w.Name <> "testmac" Then 

    Columns("A:A").Select 
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ 
     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ 
     Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ 
     :=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True 
    Selection.Delete Shift:=xlToLeft 
    Range("A1").Select 

End If 
Next w  

End Sub 

答えて

1

暗黙的にそれが唯一の1枚に取り組んでいた理由ですActiveWorkbook.ActiveSheet.Columns("A:A")
を参照!ここで

すべてのシートの上に、ワークブックを開いたすべてでそれを行うためのコードです:それこれだけのコメントを外し、私は(そこにデータを入れた後、奇妙なよう)の列を削除部分をコメントしている

注意を、あなたが必要な場合! ;)

Sub sdptest() 
Dim w As Workbook 
Dim wS As Worksheet 

For Each w In Workbooks 
    If InStr(1, LCase(w.Name), "testmac") Then 
    Else 
     For Each wS In w.Sheets 
      With wS.Columns("A:A") 
       If Application.WorksheetFunction.CountA(.Cells) > 0 Then 
        .TextToColumns Destination:=Range("A1"), _ 
           DataType:=xlDelimited, _ 
           TextQualifier:=xlDoubleQuote, _ 
           ConsecutiveDelimiter:=False, _ 
           Tab:=False, _ 
           Semicolon:=False, _ 
           Comma:=True, _ 
           Space:=False, _ 
           Other:=False, _ 
           FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True 
        '.Delete Shift:=xlToLeft 
       Else 
       End If 
      End With 'wS.Columns("A:A") 
     Next wS 
    End If 
Next w 

End Sub 
+0

こんにちは、私はコードを実行したときにエラーが発生しました: "データが解析されませんでした"。親切に助けてください –

+0

@ h.barry:編集をしよう!私はそれが空のシートを見つけたと思うので、私はテストを追加しました! ;) – R3uK

+0

こんにちは、私は助けてくれるとうれしいですsoh so much much –

関連する問題