2017-07-27 4 views
0

Ich habe die VBA-Code-Setup zum Löschen von Zeilen, Spalten formatieren, fügen Sie eine Überschrift usw. Jetzt brauche ich diesen Code auf jedem Blatt in der Arbeitsmappe wiederholt werden. Einige Arbeitsmappen haben 1 Blatt, einige können Dutzende haben. Ich habe mir verschiedene Antworten angesehen, kann aber nichts finden, was funktioniert.Excel VBA-Code auf jedem Blatt in Arbeitsmappe wiederholen

Hier ein Ausschnitt des Codes ich auf jedem Blatt wiederholt haben müssen:

Sub C_FormattingWTitle_Step3_do_on_each_tab() 

'Delete all blank empty rows 
Dim FirstBlankCell As Long, rngFound As Range 
With ActiveSheet 
    Set rngFound = .Columns("G:G").Find("*", After:=.Range("G1"), searchdirection:=xlPrevious, LookIn:=xlValues) 
    If Not rngFound Is Nothing Then FirstBlankCell = rngFound.Row 
End With 

If ActiveCell.SpecialCells(xlLastCell) <> rngFound Then 
Selection.SpecialCells(xlCellTypeBlanks).Select 
ActiveWindow.SmallScroll Down:=9 
Selection.EntireRow.Delete 
Else 
Range("A1").Select 
End If 

'Remove all not 260563 or header in SiteID column 
Dim LR As Long, i As Long 
    LR = Range("G" & Rows.Count).End(xlUp).Row 
    For i = LR To 2 Step -1 
    If Not (Range("G" & i).Value Like "260563") And Not (Range("G" & i).Value Like "SiteID") Then Rows(i).Delete 
Next i 

'Remove all False values and header in Sign in Success column 
Dim FR As Long, p As Long 
    FR = Range("F" & Rows.Count).End(xlUp).Row 
    For p = FR To 2 Step -1 
    If Not (Range("F" & p).Value Like True) And Not (Range("F" & p).Value Like "SignInSuccess") Then Rows(p).Delete 
Next p 

'Remove shading and formatting from header row 
Rows("1:1").Select 
With Selection.Interior 
    .Pattern = xlNone 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 

'Format date/time 
Columns("A:A").Select 
Selection.NumberFormat = "m/d/yyyy hh:mm:ss;@" 

Nach dem Code auf jedem Blatt laufen, möchte ich Save As Code einzufügen. Jede Hilfe würde sehr geschätzt werden.

+0

Sie Antwort in SO [Dokumentation] finden (https://stackoverflow.com/documentation/excel-vba/1144/loop-through -all-sheets-in-active-workbook/3685/retrieve-all-workshots-name-in-active-workbook # t = 2017707271727205672457) –

Antwort

0

eine separate Unter verwenden zu rufen und diese Unterroutine auszuführen:

Dim wkst As Worksheet 

For Each wkst In ActiveWorkbook.Worksheets 
    Call C_FormattingWTitle_Step3_do_on_each_tab(wkst) 

Next 
Verwandte Themen