Excel VBA – 插入具有相对值的值
将感谢专家的帮助!
我想写一个代码在哪里:
- 我select一个单元格并执行macros(比如单元格是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。