如何在EXCEL表格中设置一个按钮,每点击一次就在光标所在行插入21个空白行,并将相应公式复制到空白行中。
我自己做了一个,用录制宏的方,但每一次的插入都在固定的位置。例如:我在录制时是在第47行插入的,所以以后每次点击按钮就都在第47行插入。我想是在光标所在行开始插入。例如:...
我自己做了一个,用录制宏的方,但每一次的插入都在固定的位置。例如:我在录制时是在第47行插入的,所以以后每次点击按钮就都在第47行插入。我想是在光标所在行开始插入。例如:我的光标在第70行,便从第70行开始插入。我的光标在第100行,便从第100行开始插入。但每一次插入都是21行。
插入后再复制公式到每个空白行。这个已经没有问题了。
宏如下:
Sub 插入行()
Rows("47:67").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=15
Range("C70:E70").Select
Selection.Copy
Range("C47").Select
ActiveWindow.SmallScroll Down:=-9
Range("C47").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C47:E67"), Type:=xlFillDefault
Range("C47:E67").Select
End Sub
请大侠帮忙解决! 展开
插入后再复制公式到每个空白行。这个已经没有问题了。
宏如下:
Sub 插入行()
Rows("47:67").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=15
Range("C70:E70").Select
Selection.Copy
Range("C47").Select
ActiveWindow.SmallScroll Down:=-9
Range("C47").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C47:E67"), Type:=xlFillDefault
Range("C47:E67").Select
End Sub
请大侠帮忙解决! 展开
展开全部
你要复制的公式位置在哪啊?
看你的代码,公式的位置在插入行前后是变化的
看你的代码,公式的位置在插入行前后是变化的
追问
是的,公式的位置在插入行前后是变化的。我先选定了打印区域为1-48行。
在录制宏前,公式是在C49,D49,E49。但点一次插入后,公式和找印区域就向下移21行了。在C70,D70,E70。
每次复制也只要复制这3列的公式。C列的复制到C列这样对应。当然,选择了打印区域也可以把公式的位置固定。那样方便那样写吧!谢谢
追答
你试试下面的代码,如果公式的位置不对,再修改
Sub 插入行()
Dim InsertRow as Long
InsertRow = ActiveCell.Row
Rows(InsertRow & ":" & InsertRow + 20).Select
Selection.Insert Shift:=xlDown
Range(Cells(InsertRow + 23, 3), Cells(InsertRow + 23, 5)).Select
Selection.Copy
Cells(InsertRow, 3).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range(Cells(InsertRow, 3), Cells(InsertRow + 20, 5)), Type:=xlFillDefault
End Sub
展开全部
Sub 插入行()
Dim myrow As Integer
myrow = Selection.Row
Rows(myrow).Select
For i = 1 To 21
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
Range("C1:E1").Select
Selection.Copy
Range(Cells(myrow, 3), Cells(myrow + 20, 5)).Select
ActiveSheet.Paste
End Sub
Dim myrow As Integer
myrow = Selection.Row
Rows(myrow).Select
For i = 1 To 21
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
Range("C1:E1").Select
Selection.Copy
Range(Cells(myrow, 3), Cells(myrow + 20, 5)).Select
ActiveSheet.Paste
End Sub
追问
你的公式试过了,行插入了,但不能复制公式。但也谢了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2021-10-24
展开全部
决不会无路可通,所以,它应该是梦中之
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询