Excel VBA这应该是工作,但事实并非如此

我想要做的是当我保存我的excel文件时,我希望脚本检查所有具有“$”作为最后一个字符的单元格,并检查在同一列中是否有名为“Backup”的单元格因为它发现一个单元格,如果有的话,那么只能应用我的脚本

这是我的代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim c As Range Dim x As Integer Dim y As Integer Dim isbackup As Boolean isbackup = False For Each c In Range("A1:N60") If Right(c, 1) = "$" Then y = c.Column: x = c.Row For i = 1 To 60 If Cells(i, y).Value = "Backup" Then isbackup = True Exit For End If Next i If isbackup = True And Right(c, 1) = "$" Then <my script> Next c 

我没有看到任何语法或逻辑错误,但我得到的错误代码

1004:“应用程序定义或对象定义的错误”

也许这可以帮助:

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim c As Range Dim x As Integer, y As Integer Dim isbackup As Boolean isbackup = False Dim rng As Range Set rng = ThisWorkbook.Worksheets(1).Range("A1:N60") For Each c In rng If Right(c, 1) = "$" Then y = c.Column: x = c.Row Dim i As Integer For i = 1 To rng.Rows.Count '--> I find this more flexible If Cells(i, y).Value = "Backup" Then isbackup = True Exit For End If Next i End If If isbackup = True And Right(c, 1) = "$" Then DoEvents 'Replaced by your script Next c End Sub