2016-12-13 57 views
0

我能找到堆栈溢出两个代码,但不能把它给一个浅灰色格式化行,其次是白排,帮助将不胜感激,都尝试规范颜色格式每隔一行

Sub Colour(rng As Range, firstColor As Long, secondColor As Long) 
    rng.Interior.ColorIndex = xlAutomatic 
    rng.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ROW(),2)=0" 
    rng.FormatConditions(1).Interior.Color = firstColor 
    rng.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ROW(),2)<>0" 
    rng.FormatConditions(2).Interior.Color = secondColor 
End Sub 
'Usage: 
' 
Sub ColourFormatting() 
    Dim rng As Range 
    Dim firstColor As Long 
    Dim secondColor As Long 

    Set rng = Range("A1:E10") 
    firstColor = Pattern = xlSolid: PatternColorIndex = xlAutomatic: ThemeColor = xlThemeColorDark1: TintAndShade = -0.149998474074526: PatternTintAndShade = 0 
    secondColor = TintAndShade = 0: PatternTintAndShade = 0 
' 
    Call Colour(rng, firstColor, secondColor) 
End Sub 

Sub ShadeEveryOtherRow() 
    Dim Counter As Integer 

    'For every row in the current selection... 
    For Counter = 1 To Range("A1:E30").Rows.Count 
     'If the row is an odd number (within the selection)... 
     If Counter Mod 2 = 1 Then 
      'Set the pattern to xlGray16. 
      Range("A1:E30").Rows(Counter).Interior.Pattern = xlSolid: PatternColorIndex = xlAutomatic: ThemeColor = xlThemeColorDark1: TintAndShade = -0.149998474074526: PatternTintAndShade = 0 

     End If 
    Next 

End Sub 
+0

真的很困惑。你想添加一个不同的条件格式或只是规则的格式化交替行?如果只是格式化你在“ShadeEveryOtherRow”子版上出现什么错误?这一个似乎应该工作。 – nbayly

回答

1

你不需要VBA这个 - 你可以使用条件格式使用一个公式:

=MOD(ROW(),2)=1 

和格式设置为浅灰色。对第一行执行此操作,然后将该行复制到该区域中作为格式(粘贴特殊)。

但是你的代码使用的参数错误的分隔符,冒号VBA意味着新的生产线,使您的发言

Range("A1:E30").Rows(Counter).Interior.Pattern = xlSolid: PatternColorIndex = xlAutomatic 

相同

Range("A1:E30").Rows(Counter).Interior.Pattern = xlSolid 
PatternColorIndex = xlAutomatic 

而且我相信VBA使用您的第二条线的最新选择。

尝试:

Range("A1:E30").Rows(Counter).Interior.Pattern = xlSolid, PatternColorIndex = xlAutomatic 

+0

我有三十张桌子,我热衷于将此添加到我的代码中,所以我正在寻找VBA元素 – user3287522

+0

任何帮助将不胜感激,并感谢您 – user3287522

+0

@ user3287522我想这归结为您需要这样做的频率 - 如果只是一次,那么复制/粘贴30个表格的格式可能会更快。 另一种方法是将格式复制到一张表上,然后制作一个VBA子版,将其复制并粘贴到适用的表格上,而不是使用代码实际设置格式 – Harlekuin