怎么在这段vba中,加入判断是否重命名的工作表已存在?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim mm As String
Dim a As String
Dim i As Integer
i = ActiveCell.Row '获得激活单元格的行数
If Target.Column = 14 Then '如果点周的单元格列数等于14
a = Worksheets("sheet1").Range("B" & i).Value '把sheet1工作表中Bi(i为选中单元格的行数)单元格的值赋值给a
Worksheets("sheet2").Range("C3") = a '把a的值赋值给sheet2工作表中的C3
mm = Worksheets("sheet1").Range("A" & i).Value '把sheet1工作表中Ai(i为选中单元格的行数)单元格的值赋值给mm
Sheets("Sheet2").Copy After:=Sheets(2) '复制sheet2工作表
Sheets("Sheet2 (2)").Name = mm '把sheeet2(2)得命名为mm的值
Sheets("sheet1").Select
End If
End Sub

以上为代码,怎么在这段vba中,加入判断是否重命名的工作表已存在?若存在就删除已存在的这个工作表,若不存在就直接执行Sheets("Sheet2 (2)").Name = mm , 谢谢了!

第1个回答  2014-03-01

给你一段工作部内表格遍历的参考代码:

With ThisWorkbook
    For x = 1 To .Worksheets.Count
        xxxx = .Sheets(x).Name
        If Sheets(x).Name = "dd" Then
            Application.DisplayAlerts = False'关闭删除提示
            .Sheets(x).Delete
            Application.DisplayAlerts = True
            Exit For
        End If
    Next
End With

本回答被网友采纳
第2个回答  推荐于2016-07-27
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim mm As String
Dim a As String
Dim i As Integer
i = ActiveCell.Row '获得激活单元格的行数
If Target.Column = 14 Then '如果点周的单元格列数等于14
a = Worksheets("sheet1").Range("B" & i).Value '把sheet1工作表中Bi(i为选中单元格的行数)单元格的值赋值给a
Worksheets("sheet2").Range("C3") = a '把a的值赋值给sheet2工作表中的C3
mm = Worksheets("sheet1").Range("A" & i).Value '把sheet1工作表中Ai(i为选中单元格的行数)单元格的值赋值给mm
Sheets("Sheet2").Copy After:=Sheets(2) '复制sheet2工作表
For Each sh In Worksheets
Application.DisplayAlerts = False'关闭删除提示
If sh.Name = mm Then sh.Delete
 Application.DisplayAlerts = True
Next
Sheets("Sheet2 (2)").Name = mm '把sheeet2(2)得命名为mm的值
Sheets("sheet1").Select
     End If
    End Sub

本回答被提问者采纳
第3个回答  2015-12-14
代码及注释如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim mm As String
Dim a As String
Dim i As Integer
i = ActiveCell.Row '获得激活单元格的行数
If Target.Column = 14 Then '如果点周的单元格列数等于14
a = Worksheets("sheet1").Range("B" & i).Value '把sheet1工作表中Bi(i为选中单元格的行数)单元格的值赋值给a
Worksheets("sheet2").Range("C3") = a '把a的值赋值给sheet2工作表中的C3
mm = Worksheets("sheet1").Range("A" & i).Value '把sheet1工作表中Ai(i为选中单元格的行数)单元格的值赋值给mm
Sheets("Sheet2").Copy After:=Sheets(2) '复制sheet2工作表

Application.DisplayAlerts = False '关闭提示,否则删除工作表时,会出现提示
For i=1 to sheets.count '遍历每一个工作表
If sheets(i).Name = mm Then sheets(i).Delete '如果工作表名为mm,则删除这个工作表
Application.DisplayAlerts = True '开启提示

Sheets("Sheet2 (2)").Name = mm '把sheeet2(2)得命名为mm的值
Sheets("sheet1").Select
End If
End Sub
相似回答