excel VBA如何在动态表中添加将两个值相乘的公式?

a5g8bdjr  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(118)

我没有太多的经验问这些问题,所以请与我坦白。我有以下的场景。我有一个大范围的数据,我试图自动化,需要执行一些计算。在E列中,我编写了贯穿整个报表的代码,并在找到的每个空单元格上添加一个公式,该公式将销售总额(F列中的小计)除以利息金额(G列中的总计)。
现在我在列E中有了这个新值,我需要为列G中的每个条目运行一个独立的乘法。我需要将E列中的小计金额乘以F列中的每个单独金额,以便获得每行的相应利息。
我遇到的主要问题是,我无法找到一种方法来用正确的公式填充整个G列,因为每个子集的长度是不断变化的(动态的)。
这是表的样子,我有20多本书,但只是简化它:

任何想法或帮助将不胜感激。
这是我到目前为止写的代码:

Dim Rng As Range, r As Range

    Set Rng = Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeConstants)
    'Top = Selection.End(xlUp).Value

For Each r In Rng.Areas
    With r
         .Cells(1, 1).Offset(.Rows.Count).Formula = "=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), 0, 2) / OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), 0, 1)"
    End With
Next
q8l4jmvw

q8l4jmvw1#

你试试这样-

Sub Tester()
    
    Dim Rng As Range, rE As Range, rG As Range

    Set Rng = Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeConstants)
    
    For Each rE In Rng.Areas
        Set rG = rE.EntireRow.Columns("G") 'corresponding G range
        
        rG.Formula = "=" & rE.Cells(1).Offset(0, 1).Address(False, False) & _
                     "*" & rE.Cells(rE.Cells.Count).Offset(1).Address(True, True)
        
    Next
End Sub

相关问题