我正在尝试将当前活动选择转换为命名范围,我可以将其作为数据透视表的数据源引用。我的函数 selectByUsedRows 提供了基于 usedCol 中有多少行以及在 selectStartCol 和 selectEndCol 处开始和停止的选择。当您只希望您的选择包含与选择之外的列的行数匹配的单元格时,这很有用。我无法为这个选择命名。任何帮助都会很棒。
Excel 数据
A B C
1 CaseNum Branch Name
2 1234 APL George
3 2345 VMI George
4 3456 TEX Tom
5 4567 NYC Tom
6 5678 VMI Sam
7 6789 TEX Tom
8 7890 NYC George
VBA
'Check reference column and select the same number of rows in start and end columns
Sub selectByUsedRows(usedCol As String, selectStartCol As String, selectEndCol As String)
n = Range(usedCol & "1").End(xlDown).Row
Range(selectStartCol & "1:" & selectEndCol & n).Select
End Sub
'Dynamically select columns A to C with as many rows as are in A
Sub test()
refCol = "A"
selectStartCol = "A"
selectEndCol = "C"
selectByUsedRows refCol, selectStartCol, selectEndCol
'Code works until this point. There is now an active selection of A1:C8.
'The following is hypothetical
Dim rngSelection As Range
Set rngSelection = ActiveSelection
Range(rngSourceData).CurrentRegion.Name = "rngSourceData"
Set objTable = Sheet5.PivotTableWizard
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
rngSourceData, Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Sheet5!R1C4", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion14
End Sub