动态源/根据最后一列调整数组引用

Dynamic source / adjust array reference according to last col

我正在将一个 ID 与两个主元 table 进行比较,然后按每个主元 table.

从特定列返回匹配值

以前,枢轴 tables 的列数是固定的,但现在我面临的是枢轴 tables 在最后一列方面的变化。

我的尝试是使用代码行

   LastColContract = wsContractPivot.Cells(1, Columns.Count).End(xlToLeft).Column

为了找到 ContractPivot 中的最后一列然后更改行

rwReport.Columns("G").Resize(1, 7).Value = _

rwReport.Columns("G").Resize(1, lastColContract).Value = _

但我正在努力告诉 Excel 然后扩展数组列以在 H 之后添加其他列。

所以如果 lastcol 是 10,那么我需要代码开始列出从 B 列开始的 10 列。 如果 lastcol 为 12,则 B 等中的 12 列

    For Each c In wsReport.Range("F3", wsReport.Cells(Rows.Count, "F").End(xlUp)).Cells
    
    c.Offset(0, 1).Resize(1, 50).ClearContents
    
    MfrName = c.Value 'read this once....
    Set rwReport = c.EntireRow
    
    '1st Database Match "ContractSpend"
    m = Application.Match(MfrName, wsContractPivot.Columns("A"), 0)
    If Not IsError(m) Then
       With wsContractPivot.Rows(m)
        
        'starting column
                rwReport.Columns("G").Resize(1, 7).Value = _
               Array(.Columns("B").Value, .Columns("C").Value, _
                     .Columns("D").Value, .Columns("E").Value, _
                     .Columns("F").Value, .Columns("G").Value, .Columns("H").Value)
            'Extended Cost
            
        End With
    Else
        'no match...
    End If

尝试这样的事情:

'...
'...
Set pt = wsContractPivot.PivotTables(1)    'or use specific name

'https://peltiertech.com/referencing-pivot-table-ranges-in-vba/
numCols = pt.TableRange1.Columns.Count - 1 'PT width-1

For Each c In wsReport.Range("F3", wsReport.Cells(Rows.Count, "F").End(xlUp)).Cells
    
    c.Offset(0, 1).Resize(1, 50).ClearContents
    
    MfrName = c.Value 'read this once....
    Set rwReport = c.EntireRow
    
    m = Application.Match(MfrName, wsContractPivot.Columns("A"), 0)
    
    If Not IsError(m) Then
       
       rwReport.Columns("G").Resize(1, numCols).Value = _
           wsContractPivot.Cells(m, "B").Resize(1, numCols).Value
       
    End If
Next c
'...
'...