VBA查找范围内的多个项目并基于其他条件在行复制并粘贴到另一个工作表的相邻单元格

我有3个选项卡,用于尝试使用VBA自动化的特定问题。

“表单”选项卡:用户从下拉列表中select最多10个他们需要访问的不同实体(范围A25:A34)

FLS Hiearchy:这个标签是公司内所有从第一级(最高/父级)到第十级(最低的子级)的实体的层次结构。 范围A:D(列A是级别,B是与在“表单”选项卡上的下拉列表中select的各种实体匹配的实体,列C是实体描述,列D是需要复制到表1的秒类) 。

Sheet1:该选项卡用于pipe理员,用于根据“表单”选项卡中选定的实体从“FLS Hiearchy”选项卡查找必要的安全类。 范围A1:J1。 安全类将被复制到从“表单”选项卡派生的每个variables下(最多10个实体,与Sheet1上的J列相关联)。

我知道我需要创build一个循环来完成这个任务。 简而言之,VBA脚本需要从“表单”选项卡中标识实体(最多10个),根据需要将它们粘贴到范围A1:J1中,然后经过一个循环,以A1开头的相应实体并查找FLS Hieararchy选项卡中的实体。 一旦findHierarchy选项卡中的每个实体,就需要在Hierarchy选项卡上确定其级别(A列)。 例如,如果级别是6级,VBA脚本需要获取实体所在行的安全级别,然后为其下面的实体获取安全级别,直到find下一级安全级别,然后才需要停在那里(上一行不包括下一级6)。 在这个例子中,如果你find一个级别6,下面的实体也是6,VBA脚本只需要获取一个安全类(第一个variables的列d)。

以下是我到目前为止,但我显然需要更多的帮助完成。

Sub SecurityClasses() ' ' SecurityClasses Macro ' Based off entity selected in Form tab determine the security classes needed for user. ' Sheets("Sheet1").Range("A:AZ").ClearContents Sheets("Form").Activate Range("A25").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet1").Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True