2017-02-15 6 views
1

Я хотел бы выполнить текст в столбце на многих книгах, используя vba.текст в колонку много excel workbooks

Я пробовал приведенный ниже код, но он работает только с одной книгой, пока я хочу, чтобы все они были изменены, за исключением «Testmac» wb.

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

В коде Columns("A:A") неявно ссылаться 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

Привет, он работает Спасибо, очень много –