用IF条件创build子数组并连接它

我有三种types的表格:

  1. 每个产品的数据表(结构相同)。 我用代码(例如S或C或空白)标记我要申请的每个数据表的折扣(例如Black,Red,Shine,…表单)
    1. Sheet Asign来标记它们必须考虑到的每个组中的图纸(在示例中,B列中只有两个值,但可以是从2到25或更多)
    2. 摘要页面(以日记本为例)获取数据摘要(在现实中,我有一个针对组加日记。

我需要在Diary页面上的每个单元格上连接我在DataSheetName数组中首先收取的表的名称,但是只有那些获取一个条件的值,在同一个数组的不同表单的Cell中,认为我需要一个子数组和一个循环通过行)。 我将为这样一个macros创build一个macros,这个macros需要在Asign Sheet和diferente代码中创build(我为此创build循环的原因)

例如,这张用于红色和黑色产品的图片(将照片首先放入“正方形”工作表的一部分,将两张工作表称为“B1单元格值”的值)

Asign,红色,黑色床单

我想在日记中连接。 我在图片左侧得到的东西,我想要的以及我得到的东西

我想要/得到的

Sub Diary() Dim p As Integer, lRow As Integer Dim q As String 'Check for the last row With Worksheets("Asign") lRow = .Cells(.Rows.Count, "B").End(xlUp).Row End With ' Declare and chage array with all sheet names at column B os Asign sheet, excluding the first (ID of group) p = 1 Dim DataSheetName() As String ReDim DataSheetName(lRow) Do DataSheetName(p) = Worksheets("Asign").Cells(p + 1, "B").Value p = p + 1 Loop While p < lRow ' Activo y situo el cursor en la pagina de sumario With Worksheets("Diary") .Activate .Range("C7").Select End With ' Inicialize i at 3 to count from C column i = 3 Do Cells(7, i).Select For r = 1 To UBound(DataSheetName) 'Concatenate with &: varConctnt = varConctnt & ", " & DataSheetName(r) Next r 'remove the "&" before the first element: varConctnt = Mid(varConctnt, 2) q = varConctnt varConctnt = "" i = i + 1 ActiveCell.Value = q Loop While i < 11 Range("C7:J7").Select Selection.AutoFill Destination:=Range("C7:J12"), Type:=xlFillDefault End Sub