Excel VBA-插入具有相对值的值

Excel VBA-插入具有相对值的值,excel,vba,Excel,Vba,非常感谢专家们的帮助 我正在尝试编写一个代码,其中: 我选择一个单元格并执行宏,假设单元格为L30 VBA复制包含活动单元格的整行复制第30行公式和硬编码数字的整个数据组合 VBA在复制的行下方插入新行,以便将第30行中的数据下移到第31行 VBA使用复制的第30行中的公式和硬编码数字粘贴新行第31行 在新行的O列中,VBA插入单元格O4中的数值,但反向符号O7中有一个数字,但它基于一个公式 在新行的p列中,VBA插入单元格R4中的数字值,但反向符号R4中也有一个数字,但它基于一个公式 在P30

非常感谢专家们的帮助

我正在尝试编写一个代码,其中:

我选择一个单元格并执行宏,假设单元格为L30 VBA复制包含活动单元格的整行复制第30行公式和硬编码数字的整个数据组合 VBA在复制的行下方插入新行,以便将第30行中的数据下移到第31行 VBA使用复制的第30行中的公式和硬编码数字粘贴新行第31行

在新行的O列中,VBA插入单元格O4中的数值,但反向符号O7中有一个数字,但它基于一个公式

在新行的p列中,VBA插入单元格R4中的数字值,但反向符号R4中也有一个数字,但它基于一个公式

在P30中,VBA插入一个公式,其中=原始P30值-P31

我已经按照下面的代码编写了代码。这似乎完成了1,2,3,4,5,但只完成了部分4和5,因为我似乎无法为值O7和R4添加负号并将它们插入新行

步骤6。。是一件我甚至无法让球滚动的事情

我知道这是我要求的很多步骤。 如能提供一些指导或提示,将不胜感激

谢谢

ActiveCell.Offset(1, 0).EntireRow.INSERT
ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow

Range("O4").Copy ActiveCell.Offset(1, 4)
Range("R4").Copy ActiveCell.Offset(1, 5)
试试这个:

Dim r As Range, nrow As Long, orow As Long
Set r = ActiveCell
nrow = r.Offset(1, 0).Row: orow = r.Row
r.EntireRow.Copy
r.Offset(1, 0).Insert xlDown

Range("O" & nrow) = -Range("O4") 'reverse the sign
Range("P" & nrow) = -Range("P4") 'reverse the sign
With Range("P" & orow)
    .Value = .Value - .Offset(1, 0).Value
End With
对于步骤7,不能将其指定为公式,因为这将是循环引用。
上面的代码已经根据上面的示例将结果放入P30中。HTH.

我认为展示您想要做的事情的最佳方式是提供前后数据的快照。L42,非常感谢!!第一部分工作得非常好!我正在学习第二部分,以便更好地理解.value=.value-.offset1,0.value背后的逻辑。我想我会在做更多的模拟跑步时找到答案的。我为迟来的回复道歉。我已经为此奋斗了一段时间,并且一直在手工完成这项任务。非常感谢。谢谢大家!@用户4037625很高兴它有帮助。顺便说一句,这是在SO中表达感谢的一种方式。这也被解释了。我知道的大部分事情都是在这里学到的。这是一个很好的社区,每个人都愿意回答,只要你发布一个。你得到了队长。我为没有早点接受答案而道歉!再次非常感谢。我也会尽我所能做出贡献。