Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 小计和复制/粘贴可变范围_Vba_Variables_Subtotal - Fatal编程技术网

Vba 小计和复制/粘贴可变范围

Vba 小计和复制/粘贴可变范围,vba,variables,subtotal,Vba,Variables,Subtotal,我试图找出Excel VBA代码,将小计(=小计(9,_u:u)公式添加到工作表中的多个总行(红色框) 问题是小计的范围可以是任何高度。根据下图,希望VBA代码能够识别“总计”的时间出现在B列中,然后继续在该行中为E列到J列添加小计公式。小计公式需要向上拉上述余额,直到有一个空白单元格,以便计算特定客户的金额(范围长度由下图中的箭头表示)。范围可以是任意数量的行,因此必须完全可变 此外,尝试在工作表的最底部(最后一行+2)添加小计,该小计应延伸到该行的最顶部(蓝色箭头) 最后,我需要找到一种方法

我试图找出Excel VBA代码,将小计(=小计(9,_u:u)公式添加到工作表中的多个总行(红色框)

问题是小计的范围可以是任何高度。根据下图,希望VBA代码能够识别“总计”的时间出现在B列中,然后继续在该行中为E列到J列添加小计公式。小计公式需要向上拉上述余额,直到有一个空白单元格,以便计算特定客户的金额(范围长度由下图中的箭头表示)。范围可以是任意数量的行,因此必须完全可变

此外,尝试在工作表的最底部(最后一行+2)添加小计,该小计应延伸到该行的最顶部(蓝色箭头)

最后,我需要找到一种方法,将客户名称(B列中的绿色矩形)复制到总单元格旁边(复制到C列)。每个客户的发票数量可能不同,因此必须确定客户名称所在的位置,然后将名称复制到计算客户总数的底部

在此方面的任何帮助都将不胜感激

Sub totalAllClients()
    Dim rng As Range, rngsb As Range, addr As String

    With Worksheets("Sheet1")
        With Intersect(.Columns(2), .UsedRange)
            Set rng = .Find(What:="total", After:=.Cells(1), MatchCase:=False, _
                            LookAt:=xlWhole, SearchDirection:=xlPrevious)
            If Not rng Is Nothing Then
                addr = rng.Address(0, 0)
                Do
                    rng.Offset(0, 1).FormulaR1C1 = _
                        "=index(c2, match(""zzz"", r1c2:r[-1]c2))"
                    rng.Offset(0, 3).Resize(, 6).FormulaR1C1 = _
                        "=subtotal(109, r[-1]c:index(c, match(""zzz"", r1c2:r[-1]c2)))"
                    Set rng = .FindNext(After:=rng)
                Loop Until rng.Address(0, 0) = addr

                rng.Offset(2, 3).Resize(1, 6).FormulaR1C1 = _
                    "=aggregate(9, 3, r2c:r" & rng.Row & "c)"
            End If
        End With
    End With

End Sub


欢迎!您可以添加到目前为止您生成的代码中,以便我们可以帮助您吗?您好,我已经添加了当前所述的代码。我现在将此作为一个单独的宏,但希望将其添加到另一个宏中,以便一次处理所有内容。如果有任何方法可以使用Acti执行此小计宏veSheet。这将是首选。感谢您的帮助:)您的代码似乎已经完成了您想要的一切,做得很好!至于使用ActiveSheet,这应该很简单,只需将带有工作表(“Sheet1”)的
更改为带有ActiveSheet的
。你还需要什么吗?但由于某种原因,代码不起作用。不确定这一点有什么问题。特别感谢在制定这段代码时提供的帮助。它似乎对我有用。结果是否与您的预期不符?如果是,有什么区别?代码是否抛出错误?如果是,错误是什么,在哪里?