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

2024-12-11 18:36:47
推荐回答(3个)
回答1:

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

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:

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:

代码及注释如下:
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