2016-07-15 9 views
1

Ich versuche, einen Rahmen um einzelne Zellen zu legen, während ich durch eine FOR LOOP gehe, wobei die Anzahl der Schleifen durch die Anzahl der Spalten bestimmt wird und die Anzahl der Spalten zwischen den Blättern variiert .Zellrahmen mit variierendem Bereich

Es scheint, dass ich nicht individuell einen Rahmen um eine dynamische Zelle platzieren kann, sondern einen Bereich oder eine bestimmte Zelle angeben muss. Ist das korrekt?

Hier ist mein Code, dass ich mein Ziel bin mit ...

Sub Sheet_Formatting() 

    For Col_Count = 1 To Col_Count_Active_Sheet 

    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Interior.Color = RGB(100, 100, 100) ' sets to the color ??? 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Borders.LineStyle.xlContinuous  ' sets to the linestyle 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Borders.Weight.xlThick    ' sets to the border thickness 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Font.Bold = True      ' sets to the text format to bold 

    Next Col_Count 
End Sub 

ich es eine Möglichkeit, glauben zu erreichen, ist die Grenze Spezifikation zu erreichen, aber ich kann nicht „Zellen“ verwenden Sie angeben Grenzen. Die Innenfarbe und Schriftart funktionieren wie gewünscht.

Antwort

1

Es gibt einen Unterschied zwischen der Range.Borders Eigentum und die Border Object. Verwechsle die beiden nicht.

Sub Sheet_Formatting() 

    For Col_Count = 1 To Col_Count_Active_Sheet 

     With ThisWorkbook.Worksheets(Active_Sheet).Cells(1, col_Count) 
      .Interior.Color = RGB(100, 100, 100) ' sets to the color ??? 
      .Borders.LineStyle = xlContinuous  ' sets to the linestyle 
      .Borders.Weight = xlThick    ' sets to the border thickness 
      .Font.Bold = True      ' sets to the text format to bold 
     End With 

    Next Col_Count 

End Sub 

Ich habe ein paar der repetitious .Parent Referenzen mit einem With ... End With statement gereinigt. Das sorgt nicht nur für saubereren Code, sondern läuft auch schneller.

2

Sie müssen die Eigenschaftswerte für Border zuweisen, so wie du es getan hast für Color und Bold

Sub Sheet_Formatting() 



    For Col_Count = 1 To Col_Count_Active_Sheet 

    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Interior.Color = RGB(100, 100, 100) ' sets to the color ??? 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Borders.LineStyle = xlContinuous  ' sets to the linestyle 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Borders.Weight = xlThick    ' sets to the border thickness 
    ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).Font.Bold = True      ' sets to the text format to bold 

    Next Col_Count 
End Sub 

Auch eine andere Art und Weise ist:

ThisWorkbook.Worksheets(Active_Sheet).Cells(1, Col_Count).BorderAround (xlThin)

+0

Was meinen Sie mit Eigenschaftswerte für Grenze hinzufügen? Ich dachte, dass war das, wofür xlContinuous und xlThick waren? – ViggyTheBadMonkey

+0

Sie verwenden dieses '.Borders.LineStyle.xlContinuous'. Es ist keine Aufgabe. Dies ist die Zuweisung '.Borders.LineStyle = xlContinuous' Wenn Ihre Anfrage gelöst ist, markieren Sie sie immer mit geantwortet/upvote. – cyboashu