首页 > 解决方案 > VBA创建没有重复的工作表并根据条件将数据复制/粘贴到新工作表

问题描述

我一直在尝试创建一个用于创建工作表的宏。代码应执行以下操作:

  1. 根据工作表(第 1 页)中“AG”列中的名称创建工作表,新工作表应在工作表(第 1 页)之后添加,并且不能重复
  2. AG 列的范围是可变的
  3. 根据 AG 列中每个单元格中的名称重命名每个工作表(不重复)
  4. 根据 Columne AG 的名称将行数据复制到新工作表

AG 列可以多次使用相同的名称,例如。

Finland 100 
Norway 50
Finland 90 

该代码应创建一个名为“Finland”的新工作表,并复制列 AG 中包含芬兰的所有行数据,并对挪威执行相同操作。

复制和粘贴数据的代码示例。但是,它似乎并非一直有效,并且代码无法创建工作表。

Sub Copycontent()

a = Worksheets("Page 1").Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To a 

   If Worksheets("Page 1").Cells(i, 33).Value = "NO" Then

       Worksheets("Page 1").Rows(i).Copy
       Worksheets("Norway").Activate
       b = Worksheets("Norway").Cells(Rows.Count, 1).End(xlUp).Row
       Worksheets("Norway").Cells(b + 1, 1).Select
       ActiveSheet.Paste
       Worksheets("Page 1").Activate 

  ElseIf Worksheets("Page 1").Cells(i, 33).Value = "FI" Then

       Worksheets("page 1").Rows(i).Copy
       Worksheets("Finland").Activate
       c = Worksheets("Finland").Cells(Rows.Count, 1).End(xlUp).Row
       Worksheets("Finland").Cells(c + 1, 1).Select
       ActiveSheet.Paste
       Worksheets("Page 1").Activate

End If

Next

Application.CutCopyMode = False

ThisWorkbook.Worksheets("Page 1").Cells(1, 1).Select

End Sub

先感谢您

标签: excelvba

解决方案


推荐阅读