2015-11-07 59 views
-1

在Excel中使用VBA;我在活动工作表的第1列中有姓名,我想将他们带到他们自己的工作表中。因此,所有值为“Name1”的单元格都将重命名为“Name1”的工作表,并且列中所有名称都相同。名称的数量未设置。我不确定如何处理这个问题,因为我刚刚开始复制到新的工作表。从第1列中取值,放上单独的工作表

+0

1)Name1列中是否有不连续点?或将循环,直到找到一个空单元总是获取所有记录? 2)你需要创建一个新的工作表吗? – alfymbohm

+0

这个问题已经在这个网站上独自回答了很多次。这里是[一](http://stackoverflow.com/questions/33569653/separate-excel-rows-into-individual-sheets-and-retain-header/33571637#33571637)。您需要稍微调整一下以完成您想要的功能。但是从那里开始尝试修复并在修改具体问题时回来。 –

回答

0

只需使用范围End属性来选择相关单元格并将其值复制到工作表Name1中所需的目标列中的相应单元格。

下面我想

  1. 要复制第2行下来的名称(例如,因为你有一个标题行)
  2. 要复制到一个名为名1新的工作表中的第一列从行开始2
  3. 原来的工作要从中复制是你ActiveSheet

只是将下面的代码分配给你喜欢的任何按钮或事件:

Sub CopyNames() 

Dim TargetRange As Range 
Dim NameSheet As Worksheet 


' Prevent Excel screen from flickering as it copies 
Application.ScreenUpdating = False 

' Set the range of data you have to copy in column A, from row 2 to the last non-empty cell 
Set TargetRange = ActiveSheet.Range("A2", ActiveSheet.Range("A2").End(xlDown)) 

' Add the worksheet and rename it 
Set NameSheet = Worksheets.Add 
NameSheet.Name = "Name1" 

' Copy and paste to the new worksheet 
TargetRange.Copy 
NameSheet.Cells(2, 1).Activate 
ActiveSheet.Paste 

' Exit Copy mode 
Application.CutCopyMode = False 

End Sub 
相关问题