我有一个我正在制作的仪表板的参考文件。我希望能够计算参考文件列中的唯一组织名称,并将该数字作为单独仪表板中列标题的数量。我使用宏录制器使其独一无二,但我不确定如何将其转换为根据ref文件中唯一组织名称的数量为我的仪表板创建动态数量的列。这是参考文件外观的图片附件示例。因此,如果计算出有5个唯一名称,我希望单独的仪表板在每列中将这些名称作为标题创建5列。
Sub Macro1()
' Macro1 Macro
Columns("F:F").Select
Range("F1:F10000000000").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns _
("O:O"), Unique:=True
ActiveCell.FormulaR1C1 = "=ROWS(R[-11]C:R[-2]C)"
End Sub
答案 0 :(得分:1)
这是通过将唯一结果加载到数组中来实现的方法。这假设列标题进入A1。
Sub Macro1()
Dim wsRef As Worksheet
Dim wsDB As Worksheet
Set wsRef = Worksheets("reference")
Set wsDB = Worksheets("Dashboard")
With wsRef
.Range("C1:C9").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("F1"), Unique:=True
Dim arrValues As Variant
arrValues = .Range("F2", .Range("F" & .Rows.Count).End(xlUp))
End With
With wsDB
.Range(.Range("A1"), .Cells(1, UBound(arrValues))).Value = Application.WorksheetFunction.Transpose(arrValues)
End With
End Sub
答案 1 :(得分:0)
使用Dictionary object获取您的唯一值,然后遍历字典项以生成列标题。例如,
myCol = 1
For Each item in oDic.items
'Presuming you want your headers to start at A1
Cells(1, myCol).Value = item
myCol = myCol + 1
Next