我想在我的应用程序中使用以下vba代码
.FormatConditions.Add Type:=xlExpression, Formula1:="=Mod(Column(), 2)"
我收到错误
错误编号5.无效参数
该代码有什么问题? THX
这是我的子代码中的完整代码..所有FomatConditions工作正常 - 除了最后两个..
' FormatConditions
With Range("K6:BH" & lastUsedRow)
.FormatConditions.Delete
' Prozent
.FormatConditions.Add Type:=xlExpression, Formula1:="=Prozent"
.FormatConditions(1).StopIfTrue = False
.FormatConditions(1).Interior.Pattern = xlNone
.FormatConditions(1).Interior.Color = RGB(174, 170, 170)
With .FormatConditions(1).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = 2
.Weight = xlThin
End With
' Prozent unter
.FormatConditions.Add Type:=xlExpression, Formula1:="=ProzentUnter"
.FormatConditions(2).StopIfTrue = False
.FormatConditions(2).Interior.Color = RGB(255, 192, 0)
With .FormatConditions(2).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = 2
.Weight = xlThin
End With
' ist
.FormatConditions.Add Type:=xlExpression, Formula1:="=Ist"
.FormatConditions(3).StopIfTrue = False
.FormatConditions(3).Interior.Color = RGB(208, 206, 206)
.FormatConditions(3).Interior.Pattern = xlLightUp
.FormatConditions(3).Interior.PatternColor = RGB(68, 84, 106)
With .FormatConditions(3).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = 2
.Weight = xlThin
End With
' ist unter
.FormatConditions.Add Type:=xlExpression, Formula1:="=IstUnter"
.FormatConditions(4).StopIfTrue = False
.FormatConditions(4).Interior.Color = RGB(255, 192, 0)
.FormatConditions(4).Interior.Pattern = xlLightUp
.FormatConditions(4).Interior.PatternColor = RGB(68, 84, 106)
With .FormatConditions(4).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = 2
.Weight = xlThin
End With
' Plan
.FormatConditions.Add Type:=xlExpression, Formula1:="=Planen"
.FormatConditions(5).StopIfTrue = False
.FormatConditions(5).Interior.Color = RGB(255, 255, 255)
.FormatConditions(5).Interior.Pattern = xlLightUp
.FormatConditions(5).Interior.PatternColor = RGB(68, 84, 106)
With .FormatConditions(5).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = 2
.Weight = xlThin
End With
' timee
.FormatConditions.Add Type:=xlExpression, Formula1:="=K$5=$F$1"
.FormatConditions(6).StopIfTrue = False
.FormatConditions(6).Interior.Color = RGB(198, 224, 180)
With .FormatConditions(6).Borders(xlLeft)
.LineStyle = xlContinuous
.Color = RGB(209, 136, 27)
.Weight = xlThin
End With
With .FormatConditions(6).Borders(xlRight)
.LineStyle = xlContinuous
.Color = RGB(209, 136, 27)
.Weight = xlThin
End With
.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(COLUMN(), 2)"
.FormatConditions(7).Interior.Color = RGB(242, 242, 242)
'.FormatConditions.Add Type:=xlExpression, Formula1:="=Mod(Column(), 2)=0"
'.FormatConditions(8).Interior.Color = RGB(255, 255, 255)
End With
答案 0 :(得分:5)
原因是您的计算机上的区域设置。您应该使用comma
来分隔公式参数,而不是semicolon
。因此,而不是这一行:
.FormatConditions.Add Type:=xlExpression, Formula1:="=Mod(Column(), 2)"
使用这个:
.FormatConditions.Add Type:=xlExpression, Formula1:="=Mod(Column(); 2)"
或者您可以选择更改区域设置。
答案 1 :(得分:0)
一个很好的答案已经发布,但作为补充:
使用Application.International(xlListSeparator)
。
Dim sep As String: sep = Application.International(xlListSeparator)
.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(COLUMN()" & sep & "2)"
无论区域设置如何,这都应该起作用。