VBA excel添加新工作表并删除原来的

Posted

技术标签:

【中文标题】VBA excel添加新工作表并删除原来的【英文标题】:VBA excel add new worksheet and deleted the original 【发布时间】:2015-12-15 03:41:49 【问题描述】:

我想创建一个按钮,用于添加新工作表并将数据从工作表(“数据”)提取到新工作表(“报告”)

但是,如果我再次单击该按钮,则会出现错误“工作表名称重复”

因此,我想在我的原始代码中添加一个函数,如果工作表名称为“report” 存在然后将其删除,否则生成报告。

但我不确定如何在我的原始代码中修改它 而且我不确定每个循环是否需要一个新的

Private Sub CommandButton3_Click()

 Dim rng As Range
 Dim ss As Range, cel As Range
Dim yesno As Range
Dim lastrow As Long    
 //looking for the last row    of      the data
 Dim tws As Worksheet
 Dim tlr, i&

 Set wks = Sheets("Data")
 With wks
  lastrow = .Range("A3").End(xlDown).Row

   Set yesno = .Range("AX3:AX" & lastrow)
 Set tws =   Worksheets.Add(after:=
 Sheets(Worksheets.Count))
 tws.Name = ("report")
 //fetch the first row as the title 
 Set rng = Union(.Range("B1"),
     .Range("F1"),                                           
    .Range("G1"),
   .Range("H1"),
    .Range("N1"),.Range(".O1"), .Range("Q1"), 
    .Range("U1"),.Range("W1"))
   rng.Copy tws.Range("A1")

 //fetec the data with condition
 For Each ss In yesno
 If LCase(ss.Cells.Value) = "Yes" And 
  LCase(ss.Cells.Offset(0, -31).Value) = "trigger"      
   And
   LCase(ss.Cells.Offset(0, -47).Value) = "trigger"        
    Then
    Set rng = Union(.Range("B" & ss.Row),    
    .Range("F" & ss.Row),
  .Range("G" & ss.Row), .Range("H" & ss.Row),    
   .Range("N" & ss.Row),
  .Range("O"&   ss.Row), .Range("Q" & ss.Row),   
   .Range("U" & ss.Row),
    .Range("W" & ss.Row))
     tlr = tws.Range("A" &     
   tws.Rows.Count).End(xlUp).Offset(1).Row
    rng.Copy tws.Cells(tlr, "A")
    ElseIf LCase(ss.Cells.Value) = "No" Then
   End If
    Next

   End With









     End Sub

【问题讨论】:

【参考方案1】:

尝试在添加新工作簿的行之前添加它。

出错后继续下一步

设置 tws = Sheets("报告")

出错时转到 0

如果不是 tws 就什么都不是 Application.DisplayAlerts = False tws.删除 Application.DisplayAlerts = True 结束如果

【讨论】:

以上是关于VBA excel添加新工作表并删除原来的的主要内容,如果未能解决你的问题,请参考以下文章

excel vba复制数据范围,打开新的xlsx文件重命名表并保存

用vba新建工作表,并命名

如何将行从一个 Excel 工作表复制到另一个工作表并使用 VBA 创建重复项?

如何在excel 用VBA插入多个工作表并命名。要用到宏。给分给分~

访问 VBA 如何将新工作表添加到 Excel?

动态添加基于工作表名称的新表单控件复选框(Excel VBA)