VBA VLOOKUP预期的故障排除:声明结束

时间:2018-08-14 00:40:17

标签: excel excel-vba vlookup

我正在编写第一个宏,目的是通过VLOOKUP过滤列以仅显示上个月的条目。但是,当我将整数月份替换为函数以从今天的日期中查找上个月的整数时,出现错误Ecpected:statement end。

我这样做了一个初始的VLOOKUP宏。

Sheets("Opportunity Created Month").Select
ActiveCell.Offset(0, 8).Columns("A:A").EntireColumn.Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
**"=7*",** Operator:=xlAnd, Criteria2:="=*2018*"** 

然后我尝试用一​​个采用今天日期并显示如下整数-1的函数替换“ = 7 *”。

Sheets("Opportunity Created Month").Select
ActiveCell.Offset(0, 8).Columns("A:A").EntireColumn.Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
    **"=TEXT(TODAY( ),"M")-1)*"**, Operator:=xlAnd, Criteria2:="=*2018*" 

这是当我收到有关语句预期结尾的错误时。

有人可以帮我解决这个问题吗?

谢谢 -詹姆斯

1 个答案:

答案 0 :(得分:-1)

您的字符串中未转义“(应加倍):

Sheets("Opportunity Created Month").Select
ActiveCell.Offset(0, 8).Columns("A:A").EntireColumn.Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, _
     Criteria1:= "=TEXT(TODAY( ),""M"")-1)*", Operator:=xlAnd, _
     Criteria2:="=*2018*"

我不知道Criteria1是否接受公式...

也许可以尝试以下方法:

ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, _
   Criteria1:= "=" & (Format(Date,"m")-1) & "*", Operator:=xlAnd, _ 
   Criteria2:="=*2018*"