2017-06-06 7 views
0

うまくいけばうまくいけばよい。私は絶対にうまく動作するブック内のすべてのシートの列サイズを修正するために使用しているサブルーチンがありますが、私はこのサブに追加して、範囲内のすべてのセルの黒を変更して削除したいそれらからの任意の塗りつぶし色。私は以下のコードを書いたが、それは私が望む方法を実行するように見えない。どのように私はこれを修正することができますどのようなアイデアは素晴らしいだろう!サブルーチンにフォントの色と塗りつぶしを追加する

Sub forEachWs() 
Dim ws As Worksheet 

'Opens new workbook for formatting 
Workbooks.Open "C:\Users\XNEID\Desktop\Test MPAN Destination 
Folder\Shell_MPANs_Test1.xlsx" 

For Each ws In ActiveWorkbook.Worksheets 
Call resizingColumns(ws) 
Next 

End Sub 

Sub resizingColumns(ws As Worksheet) 
With ws 
    .Range("A1:BB1").EntireColumn.AutoFit 
    Range("A2:BB2", Range("A2:BB2").End(xlDown)).Select 
    Selection.Font.Color = vbBlack 
    Range("A2:BB2", Range("A2:BB2").End(xlDown)).Select 
    Selection.Interior.ColorIndex = xlNone 

End With 
End Sub 

答えて

0
私は最後の行を定義することをお勧め

(下から上に作業することにより)、そして、あなたはSelectActiveWorkbookを使用して

Sub resizingColumns(ws As Worksheet) 

Dim n As Long 

With ws 
    n = .Range("A" & .Rows.Count).End(xlUp).Row 
    .Range("A1:BB1").EntireColumn.AutoFit 
    .Range("A2:BB" & n).Font.Color = vbBlack 
    .Range("A2:BB" & n).Interior.ColorIndex = xlNone 
End With 

End Sub 
+1

ありがとうございました。それは絶対的な治療を働いた。 – Dyhouse

0

避け声明では、あなたのために必要なドットを省略。代わりに、範囲を直接参照するだけです。これを試してみてください:

Sub forEachWs() 
Dim ws As Worksheet 
Dim wb As Workbook 

'Opens new workbook for formatting 
Set wb = Workbooks.Open "C:\Users\XNEID\Desktop\Test MPAN Destination 
Folder\Shell_MPANs_Test1.xlsx" 

For Each ws In wb.Worksheets 
    Call resizingColumns(ws) 
Next 

End Sub 

Sub resizingColumns(ws As Worksheet) 

With ws 
    .Range("A1:BB1").EntireColumn.AutoFit 
    .Range("A2:BB" & .Cells(.Rows.Count, 1).End(xlUp).Row).Font.Color = vbBlack 
    .Range("A2:BB" & .Cells(.Rows.Count, 1).End(xlUp).Row).Interior.ColorIndex = xlNone 
End With 

End Sub 
+1

あなたは 'Range(" A2:BB2 ")のDOTを逃しましたEnd(xlDown)':D –

1
  1. あなたが完全に変数を使用してセルのオブジェクト
  2. 作業を修飾する必要があります。私は、これはあなたがしようとしているものです.Select

の使用は避けてください最後の行

  • を見つけるためにそれを使用しているかを参照してください?

    With ws 
        .Columns("A:BB").EntireColumn.AutoFit 
        lrow = .Range("A" & .Rows.Count).End(xlUp).Row 
    
        With .Range("A2:BB" & lrow) 
         .Font.Color = vbBlack 
         .Interior.ColorIndex = xlNone 
        End With 
    End Withh 
    
  • 関連する問題