【发布时间】:2018-10-17 14:01:09
【问题描述】:
我有一个包含八张工作表的工作簿。第一个工作表是一个首页,其中包含工作簿中的所有数据,如果您愿意,可以作为主工作表。其余七个选项卡是团队的员工姓名。
我的代码将在 C 列中搜索名称并将包含该名称的整行复制到相应员工的个人工作表中。
我现在需要在同一列 (C) 中搜索其余工作人员的姓名,并将相应的行复制到相应的工作表中。
我当前的代码:
Private Sub CommandButton1_Click()
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
' Change worksheet designations as needed
Set Source = ActiveWorkbook.Worksheets("Front Page")
Set Target = ActiveWorkbook.Worksheets("Charlotte")
j = 2
' Start copying to row 2 in target sheet
For Each c In Source.Range("C1:C1000") ' Do 1000 rows
If c = "Charlotte Richardson" Then
Source.Rows(c.Row).Copy Target.Rows(j)
j = j + 1
End If
Next c
End Sub
【问题讨论】:
-
尝试循环浏览工作簿中不是首页的工作表。
-
当前代码为: Private Sub CommandButton1_Click() Dim c As Range Dim j As Integer Dim Source As Worksheet Dim Target As Worksheet ' 根据需要更改工作表名称 Set Source = ActiveWorkbook.Worksheets("Front Page" ) Set Target = ActiveWorkbook.Worksheets("Charlotte") j = 2 ' 开始复制到目标工作表中的第 2 行 For Each c In Source.Range("C1:C1000") ' Do 1000 rows If c = "Charlotte Richardson" Then Source.Rows(c.Row).Copy Target.Rows(j) j = j + 1 End If Next c End Sub
-
我可能应该提到,我在互联网上搜索了几个小时才最终找到这段代码,因为没有其他人按照我的意愿去做。不是我自己写的!超越新手!
-
@chxrlotter 你应该编辑你的问题并在上面添加代码
-
您需要获取一个唯一名称列表(使用例如高级过滤器),然后循环使用每个名称替换“Charlotte Richardson”。