编译错误:预期:=

时间:2013-08-08 11:48:04

标签: excel vba

在Sub DateDiff

中实现Sub TabPaint时出现错误
Public Sub TabPaint(ss As Integer, cc As Integer)
  With Sheets(ss).Tab
      .Color = cc
      .TintAndShade = 0
  End With
End Sub


Public Sub DateDiff(date1 As String, date2 As String, shn As Integer)
    If DateDiff("d", date1, date2, vbMonday, vbFirstJan1) < 0 Then
        TabPaint (shn, 255)
    Else
        TabPaint(shn,5287936)
    End If
End Sub

2 个答案:

答案 0 :(得分:3)

在VBA中,如果你没有将函数的返回值赋给任何东西,或者如果方法是SubRoutine,则省略括号,所以试试这个:

Public Sub TabPaint(ss As Integer, cc As Integer)
  With Sheets(ss).Tab
      .Color = cc
      .TintAndShade = 0
  End With
End Sub


Public Sub DateDiff(date1 As String, date2 As String, shn As Integer)
    If DateDiff("d", date1, date2, vbMonday, vbFirstJan1) < 0 Then
        TabPaint shn, 255
    Else
        TabPaint shn, 5287936
    End If
End Sub

答案 1 :(得分:0)

当你像子TabPaint一样调用subs时,你不能使用括号,所以试试这个:

TabPaint shn, 255

而不是:

TabPaint(shn, 255)