Excel 当范围基于另一列中的文本时,列中行数未知的小计公式

Excel 当范围基于另一列中的文本时,列中行数未知的小计公式,excel,vba,Excel,Vba,我有一个从单元格I11开始的小计列,但我不知道行的数量,因为它每次都会改变。列的末尾是基于小计的乘法函数 我正在尝试创建一个宏,该宏将从I11开始计算行数,直到F列中的值等于“已完成工作的值” 这就是我到目前为止所做的: Sub Total_Amount() 'New_Entry Macro Dim PPC1 As Worksheet Dim rowNo As Integer rowNo = ActiveCell.Row If PPC1.Range("F11:F").Value =

我有一个从单元格I11开始的小计列,但我不知道行的数量,因为它每次都会改变。列的末尾是基于小计的乘法函数

我正在尝试创建一个宏,该宏将从I11开始计算行数,直到F列中的值等于“已完成工作的值”

这就是我到目前为止所做的:

Sub Total_Amount()
'New_Entry Macro

 Dim PPC1 As Worksheet
 Dim rowNo As Integer
 rowNo = ActiveCell.Row

 If PPC1.Range("F11:F").Value = "VALUE OF WORK DONE" Then

    With Range("I" & Rows.Count).End(xlUp)
        .Offset(1).Formula = "=SUM(I11:" & .Address(0, 0) & ")"
    End With
 End If

End Sub
答案仍然出现在专栏的末尾,而不是“所做工作的价值”旁边

小计金额()
'新输入宏
将ws设置为Excel.Worksheet
暗淡的光线和长的一样
暗驼一样长
设置ws=工作表(“PPC 1”)
行=11

Do While lRow感谢Matthew,但它仍然将值放在列的末尾,而不是工作完成值的旁边,并且总和公式不断抛出错误。我将其更改为:Sub Total_Amount()'New_Entry Macro Dim ws As Excel.Worksheet Dim lRow As Long Dim lLast As Long Set ws=工作表(“PPC 1”)lRow=11当lRow@Jody编辑问题时,不要将其写在评论中,因为这会使问题无法阅读。然后,您可以使用注释通知Matthew它已更改。另外,看看我是如何在你的问题中编辑你的代码,把它放在灰色矩形中的。提交问题/答案时,选择代码部分,然后单击顶部编辑选项卡中的“代码示例”。谢谢David-willdo@Jody帕特森。我已经用您的更改更新了答案。还有其他问题吗?谢谢Matthew,但它仍然将值放在列的末尾,而不是已完成工作的值旁边,并且总和公式不断抛出错误。我将其更改为:Sub Total_Amount()'New_Entry Macro Dim ws As Excel.Worksheet Dim lRow As Long Dim lLast As Long Set ws=Worksheets(“PPC 1”)lRow=11当lRow@Jody编辑问题时,不要将其写在评论中,因为这会使问题无法阅读。然后,您可以使用注释通知Matthew它已更改。另外,看看我是如何在你的问题中编辑你的代码,把它放在灰色矩形中的。提交问题/答案时,选择代码部分,然后单击顶部编辑选项卡中的“代码示例”。谢谢David-willdo@Jody帕特森。我已经用您的更改更新了答案。还有什么问题吗?
 Sub Total_Amount()
 'New_Entry Macro

 Dim ws As Excel.Worksheet
 Dim lRow As Long
 Dim lLast As Long

 Set ws = Worksheets("PPC 1")
 Row = 11

Do While lRow <= ws.UsedRange.Rows.Count
    If ws.Range("F" & lRow).Value = "Value of Work Done" Then
        lLast = lRow
        Exit Do
    End If
    lRow = lRow + 1
Loop

ws.Range("I" & lRow + 1).Formula = Application.Sum("I11:I" & lLast)

End Sub
Dim ws as excel.worksheet
Dim lRow As Long
Dim lLast as Long

Set ws = Worksheets("PPC 1")
lRow = 11

Do While lRow <= ws.UsedRange.Rows.count
    If ws.Range("F" & lRow).Value = "Value of Work Done" then
        lLast = lRow
        Exit do
    End if
lRow = lRow + 1
Loop
ws.Range("I" & lLast).Formula = Application.Sum("I11:I" & lLast)