excel求一个制作宏的方法

比如说我现在有ABCD列
我想要把某些行的ACD列,复制为上一行的数字
我现在开始录制宏,把第2行复制为第1行,选中A2,CTRL+D,再选中C2D2,CTRL+D,停止录制
然后我再选中第5行,想要把A5C5D5复制为第4行的数字,但用了宏以后,宏只能把第2行的复制重新再做一遍,第5行毫无改动,怎么样才能编辑宏,成为当前行呢
说一句,因为第1行和第4行的数字不同,所以无法直接复制,只能从上一行复制

选中行然后用这个试试

Sub 宏1()

Dim r As Integer
r = Selection.Row

Range("a" & r).FormulaR1C1 = "=R[-1]C"
Range("c" & r).FormulaR1C1 = "=R[-1]C"
Range("d" & r).FormulaR1C1 = "=R[-1]C"

End Sub

追问

请问一下,D列是用的公式,使用这个口令,D5只能复制D4的数字,无法把公式复制下来,怎么解决?

追答

是每次都在B2填1还是选中的行的B列填1?

每次都在B2填1

Sub 宏1()
 
Dim r As Integer
r = Selection.Row
 
Range("a" & r).FormulaR1C1 = "=R[-1]C"
Range("c" & r).FormulaR1C1 = "=R[-1]C"
Range("d" & r).FormulaR1C1 = "=R[-1]C"
Range("b2")=1
 
End Sub

选中的行的B列填1

Sub 宏1()

Dim r As Integer
r = Selection.Row

Range("a" & r).FormulaR1C1 = "=R[-1]C"
Range("b" & r)=1
Range("c" & r).FormulaR1C1 = "=R[-1]C"
Range("d" & r).FormulaR1C1 = "=R[-1]C"

End Sub

追问

请问一下,D列是用的公式,使用这个口令,D5只能复制D4的数字,无法把公式复制下来,怎么解决?
另外,现在的A5和C5显示=A4和=D4,能否只单纯复制数字呢?
也就是说,我想把选中行的D格顺延为上一行的公式(比如D4=A4+2,D5则为A5+2),同时,把A格和C格复制为纯数字
麻烦了

追答Sub 宏1()
 
Dim r As Integer
r = Selection.Row
 
Range("a" & r) = Range("a" & r - 1).Value
Range("c" & r) = Range("c" & r - 1).Value
Range("d" & r).Formula = Range("d" & r - 1).FormulaR1C1
 
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-24

要用相对引用录制才行。录制前,先按下“使用相对引用”,然后再开始录制。

追问

我尝试了相对引用,用行2复制行1来录制,但是我选择第5行,操作宏以后,把第4行复制为第1行了

第2个回答  2015-06-24
录制宏的时候可以选择相对位置进行录制
第3个回答  2015-06-24
Sub co()
r = ActiveCell.Row
c = ActiveCell.Column
If c = 1 Or c = 3 Or c = 4 Then
Worksheets("Sheet1").Range(Cells(r, 1), Cells(r, 4)).Copy Destination:=Worksheets("Sheet1").Range("a1")
Cells(r - 1, 2) = ""
End If
End Sub
第4个回答  2015-06-24
录制宏的时候勾选相对引用就可以了,试试看吧