我有 3 列数据:1. 用户 2. 用户 ID 3. 角色。
我想要做的是将用户名替换为值 User_1、User_2、User_3...,然后删除 User_id 并保留 Role 列。一个用户可以拥有多个角色,大约有 60k 个用户。我想要的是代码根据用户拥有的角色数量自动将用户的实际名称更改为 User_1、User_2、User_3 等 - 任何关于如何在 Excel 中实现这一点的想法都值得赞赏。
以便:
Mr England Approver
Mr Wales Approver
Mr Wales Query Builder
Mr Wales Reports
Mrs Scotland Approver
Mrs Scotland Query Builder
Mr Ireland Approver
Mr France Query Builder
...and so on for all users - this to my mind is a 1 to many scenario
答案1
假设:A 列表示用户,B 列表示用户 ID,C 列表示角色;同时假设每行显示每个用户的不同角色。
按ALT+打开 VBA 编辑器F11。插入模块,然后输入以下代码,然后运行宏:
Sub DeleteUserName()
Dim lRow As Long
'Find the last non-blank cell in column A(1)
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To lRow
'Set value of User from User Id value
ActiveSheet.Range("A" & x).Value = ActiveSheet.Range("B" & x).Value
Next
'Delete column B - User Id column
ActiveSheet.Columns(2).Delete
End Sub
B 列中每个单元格的值被复制到 A 列。然后删除 B 列。