gpt4 book ai didi

vba - 根据单元格内容选择 Excel 中的单元格

转载 作者:行者123 更新时间:2023-12-03 02:42:15 25 4
gpt4 key购买 nike

我正在使用 Excel 尝试在 VB for Applications 中编写宏,需要您的帮助。

我的目标:

将 1000 条记录从 Toad 导出到 Excel,然后运行一个宏,根据单元格内容将某些记录放置在某些工作表上。

我的数据示例:

image

(抱歉,我会内联发布图像,但我没有足够的声誉)

数据说明:

权限 - 用户的不同角色
User_name - 每个用户的用户名
Sort_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

但这会选择通用单元格,而不是基于写入文本的单元格。这意味着它不是针对可变长度进行编码的。

非常感谢任何帮助!

最佳答案

尝试一下,下面假设:工作表不是为特权创建的,数据按 A 列排序,事件工作表是包含您的数据的工作表

Values_To_Find 需要更改为您拥有的所有权限,它只是一个逗号分隔的列表

它不会删除原始工作表

Sub t()
Dim start_rng As Range

Values_To_Find = "Admin,Moderator,GeneralUser"
sp = Split(Values_To_Find, ",")

With ActiveSheet
For i = 0 To UBound(sp)
Found = 0
Set start_rng = .Range("A1")
For Each cell In .Range("A2:" & .Range("A2").End(xlDown).Offset(1, 0).Address)
If Found = 1 And cell.Value <> sp(i) Then 'find end
Set end_rng = cell
Exit For
End If
If cell.Value = sp(i) And start_rng.Address = "$A$1" Then 'find start
Set start_rng = cell
Found = 1
End If
Next

Set ws = Sheets.Add
ws.Name = sp(i)
.Range(start_rng.Address & ":" & Range(end_rng.Address).Offset(-1, 3).Address).Copy
ws.Range("A1").PasteSpecial
Next
End With

End Sub

关于vba - 根据单元格内容选择 Excel 中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31588170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com