Sub ClearColumns() '提示框 If MsgBox("是否继续执行?", vbYesNo) = vbNo Then Exit Sub End If '原有代码 Dim lastRow As Long Dim i As Long lastRow = Worksheets("A").Cells(Rows.Count, "AT").End(xlUp).Row For i = 2 To lastRow If Worksheets("A").Cells(i, "AT").Value > 0 And Year(Worksheets("A").Cells(i, "BB").Value) <> Year(Date) Then Worksheets("A").Cells(i, "AU").ClearContents Worksheets("A").Cells(i, "AV").ClearContents End If Next i End Sub判断工作表A是否存在,存在则执行,不存在则退出
时间: 2024-02-27 17:57:14 浏览: 86
您可以在 Sub 的开头添加一个判断语句来实现这个功能,代码如下:
```vb
Sub ClearColumns()
'判断工作表"A"是否存在
If Not WorksheetExists("A") Then
MsgBox "工作表""A""不存在!"
Exit Sub
End If
'提示框
If MsgBox("是否继续执行?", vbYesNo) = vbNo Then
Exit Sub
End If
'原有代码
Dim lastRow As Long
Dim i As Long
lastRow = Worksheets("A").Cells(Rows.Count, "AT").End(xlUp).Row
For i = 2 To lastRow
If Worksheets("A").Cells(i, "AT").Value > 0 And Year(Worksheets("A").Cells(i, "BB").Value) <> Year(Date) Then
Worksheets("A").Cells(i, "AU").ClearContents
Worksheets("A").Cells(i, "AV").ClearContents
End If
Next i
End Sub
'判断工作表是否存在的函数
Function WorksheetExists(shtName As String) As Boolean
WorksheetExists = False
On Error Resume Next
WorksheetExists = (Worksheets(shtName).Name <> "")
End Function
```
在代码中,我们首先添加了一个判断语句,使用 `WorksheetExists` 函数判断工作表"A"是否存在,如果不存在,则弹出一个提示框,并使用 `Exit Sub` 语句退出 Sub。如果存在,则继续执行后面的代码。
需要注意的是,我们还需要在代码末尾添加一个名为 `WorksheetExists` 的函数,用于判断工作表是否存在。在函数中,我们使用了一个 `On Error Resume Next` 语句来忽略任何可能出现的错误,如果能够成功获取工作表的名称,则说明工作表存在,返回值为 `True`,否则返回 `False`。
阅读全文