1、msgbox(filter) 看弹出的条件是否正确。
2、试试
Dim StartDate As Date
Dim EndDate As Date
StartDate =RibbonTabs("基础成本").Groups("查找").Items("开始日期").value
EndDate = RibbonTabs("基础成本").Groups("查找").Items("结束日期").value
Dim filter As String = "1=1"
If startDate <> Nothing Then
filter &= " and [inputdate] >= #" & StartDate & "#"
End If
If EndDate <> Nothing Then
filter &= " And [inputdate] <= #" & EndDate & "#"
End If
Dim sts() As String = {"BCID","input","usercode","fullname"}
For Each st As String In sts
Dim var As String = RibbonTabs("基础成本").Groups("查找").Items(st).text
If var = Nothing Then
'不操作
Else
var = var.Replace("*","[*]")
filter =filter & " and " & st & " Like '%" & var & "%'"
End If
Next
Tables("Basecost").Filter = filter