所以我有这个大电子表格,列和行总是在变化。 我想要做的是根据它的值找到一个单元格,然后在它下面粘贴一个公式。在这种情况下,该值是标题的一部分,因此始终位于同一行。
问题在于我试图将所有值加到单元格的左边。我知道从哪个细胞开始而不是它结束的细胞。在这里我的代码我做错了什么?
Sub OutageManagement()
Dim rngX As Range
Set rngX = Worksheets("WDCap").Range("13:13").Find("MI WD Cap. Reduction", lookat:=xlPart)
rngX.Offset(2, 0).Formula = "=sum(G15:" & rngX.Column & "15)"
End Sub
如果你可以帮助我完成下一步的话,可以获得积分
基本上还有另一个标题我需要找到我的第一个标题右侧的标题,然后输入另一个公式,即从第一个标题为+ 3列的位置添加总和到新标题的列是-1。
对不起,如果我没有意义,那就是今天没有意义的事情。
对于那些感兴趣的人,这是我最终使用的代码
Sub WDOutageManagement()
Dim rngX As Range
Dim vCell1, vCell2
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Set rngX = Worksheets("WDCap").Range("13:13").Find("MI WD Cap. Reduction", lookat:=xlPart)
'MI
vCell1 = Replace(rngX.Offset(2, -1).Address, "$", "")
rngX.Offset(2, 0).Formula = "=SUM(G15:" & vCell1 & ")"
Range(rngX.Offset(2, 0), rngX.Offset(LastRow - 13, 0)).FillDown
'LM
vCell1 = Replace(rngX.Offset(2, 5).Address, "$", "")
Set rngX = Worksheets("WDCap").Range("13:13").Find("LM WD Cap. Reduction", lookat:=xlPart)
vCell2 = Replace(rngX.Offset(2, -1).Address, "$", "")
rngX.Offset(2, 0).Formula = "=SUM(" & vCell1 & ":" & vCell2 & ")"
Range(rngX.Offset(2, 0), rngX.Offset(LastRow - 13, 0)).FillDown
End Sub
答案 0 :(得分:1)
如果该单元格是=SUM()
公式的一部分,则您无法在单元格中获得值的总和,因此我更改了公式,以获得从G列到1列的值之和到当前专栏的左侧。
然后它会查找第二个标题,并将第一个值总和右侧的值1个单元格获取到第15行第二个标题列左侧的1个单元格。
您可以开始使用此代码:
Sub OutageManagement()
Dim rngX As Range
Dim vCell1, vCell2
Set rngX = Worksheets("WDCap").Range("13:13").Find("MI WD Cap. Reduction", lookat:=xlPart)
vCell1 = Replace(rngX.Offset(2, -1).Address, "$", "")
rngX.Offset(2, 0).Formula = "=SUM(G15:" & vCell1 & ")"
vCell1 = Replace(rngX.Offset(2, 1).Address, "$", "")
Set rngX = Worksheets("WDCap").Range("13:13").Find("Another Header", lookat:=xlPart)
vCell2 = Replace(rngX.Offset(2, -1).Address, "$", "")
rngX.Offset(2, 0).Formula = "=SUM(" & vCell1 & ":" & vCell2 & ")"
End Sub
这是我制作的一些模拟数据。从G15到AP15,我把1.从AR15到BR15,我把2。
在运行宏后显示1的总和,即36,和2的总和,即54。