【发布时间】:2020-03-15 17:24:27
【问题描述】:
我在 excel vba 中编写了一个宏。我附上下面的脚本。我在宏中没有看到任何逻辑或语法错误,但是当我尝试编译它时,我得到Compile error: Expected: To
下面附上我的脚本
Sub Go()
Set ws = ActiveSheet
ws.Range("D:D").ClearContents
ws.Range("D:D").ClearFormats
ws.Cells(1, 4).Value = "Status"
ws.Cells(1, 4).Font.Bold = True
maxEntry = ActiveSheet.Cells(1048576, "A").End(xlUp).Row
pricePath = ws.Cells(2, 6).Value + "\" + ws.Cells(2, 7).Value
Set wbpp = Workbooks.Open(pricePath, UpdateLinks:=False)
ws.Activate
For i = 2 To maxEntry
Path = ws.Cells(i, 1).Value + "\" + ws.Cells(i, 2).Value
currSheet = ws.Cells(i, 3).Value
Set wbp = Workbooks.Open(Path, UpdateLinks:=False)
Set wbs = wbp.Sheets(currSheet)
wbs.Activate
wbs.Cells(1, 1).Value = "abc"
wbp.Close Savechanges:=True
ws.Activate
ws.Cells(i, 4).Value = "Updated"
Next i
wbpp.Close Savechanges:=False
End Sub
在尝试了各种方法后,我发现当我的光标在宏子内部时宏会引发错误,类似于这样
但是当我的光标在子之外时,脚本运行良好
我不记得我以前的宏发生过这个问题。
任何想法为什么会发生这种情况?每次我想测试/编译时将光标移动到底部运行真的很烦人。
【问题讨论】:
-
我测试了一个像
Sub Go() Set ws = ActiveSheet ws.Activate End Sub这样的小代码,它可以工作。我无法重现您的问题。我的建议是将例程名称从Go更改为ProcessData并进行测试。 -
@shrivallabha.redij 确实有效,我认为 VBA 可能有语法
Go可能与子名称冲突,因此出现错误。将子名称更改为其他名称效果很好。谢谢
标签: excel vba compiler-errors