Excemmacros – dynamic订购数量

我正在尝试为我的日常stream程中的某个macros创build一个macros,以总计TOTAL列中某些订单的有序数量。 问题是,每一天的订单数量不同。 所以我必须findTOTAL列并从左边求和oders的值。

该文件如下所示:

组代码Ord1 Ord2 Ord3 Ord4 Ord5 Ord6 Ord7总计

101 68070 0 0 0 6 0 0 0

我设法find了TOTAL单元格和下面的药水,但我不知道如何进一步对左边的值进行求和。

Sub Find()

Dim FindString As String Dim Rng As Range FindString = "TOTAL" If Trim(FindString) <> "" Then With Sheets("Data").Range("A1:AN1") Set Rng = .Find(What:=FindString, _ After:=.Cells(.Cells.Count), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not Rng Is Nothing Then Application.Goto Rng, True Else MsgBox "Nothing found" End If End With End If ActiveCell.Offset(1, 0).Select 

我怎样才能dynamic地总结来自Ord1..Ordx在TOTAL列的值?

我需要提到的是在TOTAL列的右边还有其他的列有公式的列,所以我必须findTOTAL不只是将C2中的所有单元格向右汇总。

提前致谢。

因为我在另一个网站上收到了我的问题的答案,所以我认为可以在这里发布也可以帮助某个人。

“你的问题有点不清楚,我推断你会在Ord1:Ordx列中为每个组/代码在Ordx列中有多行组/代码,然后,你希望将每个组/代码的订单Total列,我假设你的活动列是A:AN,总数是AO,这一切是正确的吗?

编辑:根据您对我的推论的确认,请尝试以下事件处理程序。

 Private Sub Worksheet_Change(ByVal Target As Range) Dim i, LastRow LastRow = Range("A" & Rows.Count).End(xlUp).Row On Error GoTo errhandler Application.EnableEvents = False For i = 2 To LastRow Cells(i, "AO").Value = Application.Sum(Range("C" & i & ":" & "AN" & i)) If Cells(i, "AO").Value = 0 Then Cells(i, "AO").Value = "" End If Next i errhandler: Application.EnableEvents = True End Sub 

select包含订单概览的工作表,然后右键单击底部的工作表选项卡。

select“查看代码”

将事件处理程序粘贴到右侧的白色编辑区域(右键单击区域内的“粘贴”)。

closuresVBE。

当工作表中的数据发生任何/每一次改变(添加/删除/修改)时,AO列将返回列C:AN列出的订单总数。 假设第1行包含标题,正如您在问题中指出的那样。

注意:在没有订单input的行中,AO列中的值将被返回为“空白”,以避免可能出现“0”条目混乱的视图….“

感谢garbo7441。