【发布时间】:2015-07-23 13:03:00
【问题描述】:
我正在使用 Excel 尝试在 VB 中为应用程序编写宏,并且可以使用您的帮助。
我的目标:
将 1000 条记录从 Toad 导出到 Excel,然后运行一个宏,该宏将根据单元格内容将某些记录放置在某些工作表上。
我的数据示例:
(对不起,我会内联发布图片,但我没有足够的声誉)
数据说明:
权限 - 用户的不同角色
User_name - 每个用户的用户名
sort_name - 每个用户的last_name,first_name
我想让宏做什么:
在权限列中,选择所有具有相同权限的记录及其对应的详细信息,将它们剪切并粘贴到新工作表上。在数据末尾重复此操作以获得特权。
示例:
选择所有管理行以及 user_name 和 sort_name。剪切选定的行,粘贴到 sheet2。
选择所有主持人行以及 user_name 和 sort_name。剪切选定的行,粘贴到 sheet3。
选择所有 GeneralUser 行以及 user_name 和 sort_name。剪切选定的行,粘贴在 sheet4 上。
其他信息:
在我的实际数据中,有数千行具有大约 60 种不同的权限。因此,当我在真实数据上运行此程序时,将生成一个包含 60 个不同工作表的工作簿。
特权将按顺序排列。所有管理员将在一起。单元格 A2-A9 不会有 10 个管理员,而 A67-A100 不会有更多管理员。它们是连续的。
其中包含原始数据的第一张表将在此过程结束时被删除,因此格式无关紧要。
我试过了:
Sub Test()
'
' Test Macro
'
'
Range("A2:C9").Select
Selection.Cut
Sheets("Sheet2").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("A10:C14").Select
Selection.Cut
Sheets("Sheet3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("A15:C25").Select
Selection.Cut
Sheets("Sheet3").Select
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
End Sub
但这会选择通用单元格,而不是基于所写文本的单元格。这意味着它不是为可变长度编码的。
非常感谢任何帮助!
【问题讨论】:
-
嗯,这是我的问题。我没有用 Excel 宏做很多事情,所以我不知道该尝试什么。我希望有人可以推荐一些方法。我试过使用 Range.Find,但这似乎没有选择单元格。查看我的编辑。
-
如果你不知道从哪里开始,宏记录器通常是一个好的开始
-
我的编辑现在针对原始问题。抱歉,花了我一分钟。我想让它看起来正确。