2016-04-13 16 views
1

Birkaç temel makro var, ancak her birine bir döngü işlevi eklemek istiyorum. Son etkin çalışma sayfasındaki bir döngüyü kapatmak için bir döngüyü başlatmak için başlangıç ​​kodunu ve bitiş kodunu arıyorum.VBA Basit biçimlendirme için Makro Döngü

Sub MQA_Shrink() 
' 
' 
' 
For Each sht In ThisWorkbook.Worksheets 
Range("B:B,D:D,H:I,K:O").Select 
Range("K1").Activate 
Selection.Delete Shift:=xlToLeft 
ActiveWindow.ScrollColumn = 1 
Columns("B:F").Select 
Columns("B:F").EntireColumn.AutoFit 
Range("A1:F1").Select 
With Selection 
    .HorizontalAlignment = xlCenter 
    .VerticalAlignment = xlBottom 
    .Orientation = 0 
    .AddIndent = False 
    .IndentLevel = 0 
    .ShrinkToFit = False 
    .ReadingOrder = xlContext 
    .MergeCells = False 
End With 
Selection.Merge 
Next sht 

End Sub 

Sadece her döngüsüne bu temel biçimlendirme makro gibi tüm sekmeler ve sonuna kadar:

İşte cari koddur.

Burada gördüğüm farklı örnekleri püre haline getirdim, ancak hiçbir şey düzgün bir şekilde çevrilmiyor gibi görünüyor. Hepsi özel olarak projenin projesine uyarlandı. Herhangi bir tavsiye?

cevap

0

Tüm aralık nesnesine doğru parantez atamanız veya yalnızca etkin sayfaya başvurmanız gerekir.

Sub MQA_Shrink() 
Dim sht As Worksheet 
For Each sht In ThisWorkbook.Worksheets 
    sht.Range("B:B,D:D,H:I,K:O").Delete Shift:=xlToLeft 
    sht.Columns("B:F").AutoFit 
    With sht.Range("A1:F1") 
     .HorizontalAlignment = xlCenter 
     .VerticalAlignment = xlBottom 
     .Orientation = 0 
     .AddIndent = False 
     .IndentLevel = 0 
     .ShrinkToFit = False 
     .ReadingOrder = xlContext 
     .MergeCells = False 
     .Merge 
    End With 
Next sht 

End Sub 

Ayrıca geçmesi ve kod yavaşlatır tüm .Select ve .Activate kaldırmalısınız makro kaydedici biri kullandıktan sonra. HERE