excel - 通过VBA中多列中的选择条件传输数据?
问题描述
我有一个花名册文件,我想从中选择经理员工数据(员工姓名、ID、薪水等),以转移到新的 Excel 工作簿并保存在他们的名下。经理姓名是 A 列。我只想选择一些数据传输到他们自己的工作簿,所以我制作了一个设置工作表,其中包含我想要的经理姓名在 A 列中。
代码:
Sub Main()
Dim Managers, Manager
Dim Header As Range, Where As Range, This As Range
Dim Wb As Workbook
'Prepare
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Refer to the headings
Set Header = Range("A1").EntireRow
'Refer to the data in column A
Set Where = Range("A2", Range("A" & Rows.Count).End(xlUp))
'Get the managers
With Worksheets("Setup")
Set Managers = .Range("A", .Range("A" & Rows.Count).End(xlUp))
End With
'Loop through
For Each Manager In Managers
'Find them
Set This = FindAll(Where, Manager)
If This Is Nothing Then GoTo Skip
'Create a new file
Set Wb = Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
With Wb
With .Sheets(1)
'Copy the header
Header.Copy .Range("A1")
'Copy the data
This.EntireRow.Copy .Range("A2")
End With
'Save it
.SaveAs ThisWorkbook.Path & Application.PathSeparator & Manager & "_Roster.xlsx", XlFileFormat.xlOpenXMLWorkbook
.Close
End With
Skip:
Next
'Done
End Sub
我在这一行不断收到应用程序定义的错误:
Set Managers = .Range("A", .Range("A" & Rows.Count).End(xlUp))
谁能帮我调试一下?
如果有人需要虚拟数据作为参考,您可以这样做:
在空白工作表中制作标题为(经理、员工、员工 ID、工资)
放入单元格(A2=manager 1,A3=manager 2,A4=manager 3,A5=manager 4),复制并粘贴这些,这样你就会得到一堆重复的块。
B2=employee 1 然后您可以向下拖动以将系列填充到 A 列中的最后一个单元格,并对 C 列和 D 列执行相同的操作。
像这样:https ://imgur.com/a/m423tor
然后,在 A1=manager 1 和 A2= manager 3 中标记一个新工作表“Setup”。这应该足以让您测试我提供的脚本。它应该引用设置表,只将数据从经理 1 拉到工作簿中,然后将经理 3 拉到工作簿中,而不接触经理 2 或 4 的数据。
像这样:https ://imgur.com/a/qlqCLMZ
如果它工作正常,我希望它对于新工作簿中的两个经理数据看起来像这样,并且看起来像这样:
如果您需要更多信息,请告诉我。
解决方案
你的错误是
Set Managers = .Range("A", .Range("A" & Rows.Count).End(xlUp))
将其更改为
Set Managers = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
推荐阅读
- apache - Sqoop Merge 工具在单个文件中生成输出
- tensorflow - graph.get_tensor_by_name 和 tf.global_variable 之间的区别
- command-line - 如何使用 -Djava.rmi.server.hostname=IP 和命令行参数从命令行运行 Jmeter 测试?
- c# - DataTable.DefaultView.RowFilter 中的日期时间过滤
- php - Codeigniter 避免 CRSF 攻击
- mysql - 优化50W-100W表中的SQL查询
- typescript - 如何在 Typescript 中使用类名作为泛型参数
- amazon-s3 - Terraform 是否允许一次从 aws s3 帐户导入所有存储桶?
- typescript - 导入自定义 axios 实例时 Vuex 模块不起作用
- c# - 如何对列表中的整数项求和