excel - 如何在同一列中搜索多个值?
问题描述
我有一个有八个工作表的工作簿。第一个工作表是一个首页,其中包含工作簿中的所有数据,如果您愿意,可以作为主工作表。其余七个选项卡是团队的员工姓名。
我的代码将在 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
解决方案
如果您要使用您正在寻找的确切名称(“Charlotte Richardson”,而不是“Charlotte”)来命名您的床单,那么您可以使用这个:
Private Sub CommandButton1_Click()
Dim c As Range
Dim j As Integer, i As Integer
Dim Source As Worksheet
Set Source = ActiveWorkbook.Worksheets("Front Page")
For i = 2 To ActiveWorkbook.Sheets.Count 'Assuming that "Front Page" is your first sheet
j = 2
' Start copying to row 2 in target sheet
For Each c In Source.Range("C1:C1000") ' Do 1000 rows
If c.Value2 = ActiveWorkbook.Worksheets(i).Name Then
Source.Rows(c.Row).Copy ActiveWorkbook.Worksheets(i).Rows(j)
j = j + 1
End If
Next c
Next
End Sub
这样做的好处是,当您必须添加员工时,您所要做的就是添加一个具有正确名称的新工作表,您的代码无需任何修改即可工作。
推荐阅读
- excel - 无法再在 Excel 中创建图表
- angular - Angular 8/9 - 通过服务获取图像并在没有 url 的情况下将其显示在屏幕上
- android - 如何使用 FirebaseUserMetadata 检查新用户?
- html - 如何为 div 标签的多个兄弟编写 XPath
- python - Python / pandas 从多个excel表中导入数据并转置为单个excel
- sql - 按具有多对多关系的连接字段排序
- laravel - 缩短自然长的 laravel 路线以提高可读性
- python - 如何使用 selenium/python 在不同站点之间切换?
- c++-winrt - 使用 XAMLIsland、C++/WinRT、win32、UWP UserControl - FilePicker 检索 HWND
- javascript - 如何在同一页面中加载超链接的内容