You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate中VBA脚本遇Expected Statement编译错误求助

问题分析与解决

你的VBA代码出现「compilation error: Expected Statement」编译错误,核心问题及修正点如下:

1. 修正AutoFilter的Field参数类型

原代码最后一行的Field:="11"是语法错误——Field参数用于指定筛选列的索引(从1开始计数),要求传入数值类型,不能用字符串包裹。修改为:

Wsheet.Range("$A$1:$M$4932").AutoFilter Field:=11, Criteria1:="APEXONE_OSCE"

2. 修正工作表名称匹配问题

你打开的是CSV文件,Excel中CSV的工作表名称默认是「去掉.csv后缀的完整文件名」,即14th May 2024_2024-05-14_15-35-41.320,而非你写的截断名称。更稳妥的方式是直接通过索引获取唯一的工作表(CSV文件通常只有一个工作表):

set Wsheet=Wbook.Worksheets(1)

3. 可选优化:避免硬编码行数

原代码中Range("$A$1:$M$4932")的行数是固定值,若数据行数变化会导致筛选不完整,建议动态获取最后一行:

Dim lastRow As Long
lastRow = Wsheet.Cells(Wsheet.Rows.Count, "A").End(xlUp).Row
Wsheet.Range("A1:M" & lastRow).AutoFilter Field:=11, Criteria1:="APEXONE_OSCE"

修正后的完整代码

set app=createobject("Excel.Application")
app.visible=True
set Wbook=app.Workbooks.open("C:\Users\AJ20519854\Downloads\OneDrive_1_27-5-2024\14th May 2024_2024-05-14_15-35-41.320.csv")
set Wsheet=Wbook.Worksheets(1)
Wsheet.Rows("1:12").Delete
Wsheet.Columns("A").Delete

Wsheet.Range("A1:M1").AutoFilter
Dim lastRow As Long
lastRow = Wsheet.Cells(Wsheet.Rows.Count, "A").End(xlUp).Row
Wsheet.Range("A1:M" & lastRow).AutoFilter Field:=11, Criteria1:="APEXONE_OSCE"

内容的提问来源于stack exchange,提问作者Oliver Tate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:25:05