2015-10-26 89 views
4

的整行,我有以下代码:VBA复制列表

Sub test() 
Dim r As Range, rng As Range 
Set r = Range("a6", Range("a6").End(xlDown)) 
    For Each rng In r 
     If rng <> rng.Offset(-1) Then 'if range is not 
      Dim ws As Worksheet 
      Set ws = Worksheets.Add 
      ws.Name = rng 
     Else 
     End If 
    Next rng 
End Sub 

这会去通过A6到AXX的范围,并为不同名称的工作表。然而,我不知道如何将每一行的内容复制到每个创建的工作表中。

enter image description here

所以我希望所有的变化新浪体育讯北京时间被复制到新创建的工作表中股票的变化。

我知道有一些方法有以下:

Range(Cells(rng, 1), Cells(rng, 10)).Copy 

但我不知道怎么粘贴这些不同的工作表。 有人可以请教或指导。由于

还当我尝试运行此宏有时说:

这名已被尝试不同的一个。

但是,没有该名称的工作表。

回答

2

您只需要参考/指定要使用的工作表。

试试这个(我包括一个输入框纠正表的名称,如果它已被占用。

Sub test_Nant() 
Dim r As Range, rng As Range, ws As Worksheet, aWs As Worksheet 
Set aWs = ActiveSheet 
Set ws = Worksheets.Add 
      On Error GoTo SheetRename 
      ws.Name = "Changes list" 
      GoTo KeepLooping 
SheetRename: 
      ws.Name = InputBox("Choose another name for that sheet : ", , rng.Value) 
      Resume Next 
KeepLooping: 
With aWs 
    Set r = .Range(.Range("a6"), .Range("a6").End(xlDown)) 
    For Each rng In r 
     If rng <> rng.Offset(-1) Then 'if range is not 
      .Range(.Cells(rng.Row, 1), .Cells(rng.Row, 10)).Copy Destination:=ws.Range("A1") 
     Else 
     End If 
    Next rng 
End With 
End Sub 
+1

嗨,所有的 首先非常感谢你的快速反应,唯一的问题这就是说,它只会复制一个项目,让我们说更改列表中的项目,我希望从该范围内的所有项目变更都被复制到项目清单中的变更中,我需要如何扩展此代码 – Nant

+0

您的初始需求是为每个更改创建一个工作表/选项卡...给编辑一个尝试@Nant – R3uK