求EXCEL宏实现自动插入,并自动填充上一个单元格的公式和格式
例:当我选定A4单元格时,运行该宏,则自动在A4:E4下方插入一行,其他列不插入行。插入后的单元格自动填充与上一行的公式和格式。求高手帮忙。...
例:当我选定A4单元格时,运行该宏,则自动在A4:E4下方插入一行,其他列不插入行。插入后的单元格自动填充与上一行的公式和格式。求高手帮忙。
展开
展开全部
公式是拖放还是复制? 仅靠光标停留,是不可能触发vba事件的,必须是点击单元格,或单元格有更改,才会触发事件
试试这个:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Row = 4 And ActiveCell.Column = 1 Then
Range("A5:E5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4:E4").AutoFill Destination:=Range("A4:E5"), Type:=xlFillDefault
Range("A5").Select
End If
End Sub
试试这个:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Row = 4 And ActiveCell.Column = 1 Then
Range("A5:E5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4:E4").AutoFill Destination:=Range("A4:E5"), Type:=xlFillDefault
Range("A5").Select
End If
End Sub
追问
公式是拖放的。 我的想法是,当我点击A至E列的某个单元格时,运行宏,自动提取该列的行号,然后自动选定该行A至E列,接下来在选定区域下方插入一行(活动单元格下移)
追答
不知你的实际应用是怎样的,看看这个行不行:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If ActiveCell.Column = 1 Or ActiveCell.Column = 2 Or ActiveCell.Column = 3 Or ActiveCell.Column = 4 Or ActiveCell.Column = 5 Then
i = ActiveCell.Row
Range(Cells(i + 1, 1), Cells(i + 1, 5)).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(Cells(i, 1), Cells(i, 5)).AutoFill Destination:=Range(Cells(i, 1), Cells(i + 1, 5)), Type:=xlFillDefault
Range(Cells(i, 6), Cells(i, 6)).Select
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询