求EXCEL宏实现自动插入,并自动填充上一个单元格的公式和格式

例:当我选定A4单元格时,运行该宏,则自动在A4:E4下方插入一行,其他列不插入行。插入后的单元格自动填充与上一行的公式和格式。求高手帮忙。... 例:当我选定A4单元格时,运行该宏,则自动在A4:E4下方插入一行,其他列不插入行。插入后的单元格自动填充与上一行的公式和格式。求高手帮忙。 展开
 我来答
languanzeng
2011-07-30 · TA获得超过2285个赞
知道小有建树答主
回答量:1645
采纳率:0%
帮助的人:1809万
展开全部
公式是拖放还是复制? 仅靠光标停留,是不可能触发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
追问
公式是拖放的。  我的想法是,当我点击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
阿拉泰斗
2011-07-30 · 超过34用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:82.8万
展开全部
问题不明确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式