为什么不更新'ALT'(用于确定行颜色的变量)(见图)
以下是代码:
Private Alt As Boolean
Private cnt as integer
Function Stripe(ByVal NewRow As Boolean, ByVal OddColor as String, ByVal EvenColor as String) As String
If NewRow Then
Alt = Not Alt ' Trip the switch denoting a new row
cnt = cnt + 1
end if
If Alt Then
Return OddColor
Else
Return EvenColor
End If
End Function
Function getalt () as boolean
return alt
end function
function getcnt() as integer
return cnt
end function
这里的代码是'背景颜色' 第一栏:
=Code.Stripe(true, "#E7E7E7", "Transparent")
第二列到N列:
=Code.Stripe(False, "#E7E7E7", "Transparent")
n.b。您可能需要在另一个窗口中打开图像以查看调试输出 - 我使用getalt&显示'cnt'和'alt'的值。 getcnt
答案 0 :(得分:2)
看起来你的事情太复杂了。您可以使用RowNumber来实现备用背景着色,例如:
= IIF(RowNumber(“YourDataset”)Mod 2,“#E7E7E7”,“透明”)
请注意,如果您正在使用分组,则YourDataset也可以作为范围。
答案 1 :(得分:1)
BGcolor代码需要在第一列中
= IIF(code.getcnt()Mod 2,“#E7E7E7”,“透明”)& Code.Stripe(TRUE,“”,“”)
,这在第二......列中
= IIF(code.getcnt()Mod 2,“#E7E7E7”,“透明”)& Code.Stripe(FALSE,“”,“”)
我确信代码可以整理:)