我有一个表,第一行是列标题,第一列是行标签。我已将TRUE
放在这些匹配的每个单元格中。
我需要在每个列的单独工作表中生成一个列表,仅包含单元格为TRUE
的匹配行名称。
因此,如果sheet1中的B13
,B15
和C12
为TRUE
,则sheet2将显示B
列13
和{ {1}}下面有{1}},下面有15
列C
。除了使用我输入的标签,而不是字母和数字。
我还没有设法绕过这个从哪里开始,所以任何正确方向的指针都会受到赞赏。
我已尝试为列标题和行标签创建已定义的名称。
答案 0 :(得分:3)
我不完全理解你的表的布局,但假设它看起来像我测试的下面的例子,这个VBA应该可以工作。
Sheet1表格式
Sheet2输出结果
<强> VBA 强>
Sub test()
Dim i As Long
Dim j As Long
Dim lRow As Long
Dim lCol As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
lRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
lCol = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column
With ws1
For j = 2 To lCol
ws2.Cells(1, j).Value = .Cells(1, j).Value
For i = 2 To lRow
If .Cells(i, j).Value = True Then
ws2.Cells(ws2.Rows.Count, j).End(xlUp).Offset(1, 0).Value = .Cells(i, 1).Value 'This will probably need to be changed to 'i' to represent the row number for your purposes
End If
Next i
Next j
End With
End Sub