关于VBA代码实现表格的自动合并
专家你好!我看到你在我所提问题上的留言,所以我想具体的跟你询问一下,希望可以帮助我。我表格的A列是日期,B列是判定要不要合并的数值,C列以后是内容。要实现的是:当我在B列...
专家你好!
我看到你在我所提问题上的留言,所以我想具体的跟你询问一下,希望可以帮助我。
我表格的A列是日期,B列是判定要不要合并的数值,C列以后是内容。
要实现的是:
当我在B列输入一个大于1(也就是2开始)的数后,A列中的该行单元格将向下合并,所合并的单元格数等于所输入的数,B列中的该行单元格也同样的自己向下合并,而C列以后的内容不动。当我在B列以外的地方输入数理当就不会向下合并。要求代码是在后台执行,而不是我在代码窗口点击运行按钮才运行的,也就是说我在B列输了一个数后回车就进行自动合并了。
我想这应该是要用到change事件吧 展开
我看到你在我所提问题上的留言,所以我想具体的跟你询问一下,希望可以帮助我。
我表格的A列是日期,B列是判定要不要合并的数值,C列以后是内容。
要实现的是:
当我在B列输入一个大于1(也就是2开始)的数后,A列中的该行单元格将向下合并,所合并的单元格数等于所输入的数,B列中的该行单元格也同样的自己向下合并,而C列以后的内容不动。当我在B列以外的地方输入数理当就不会向下合并。要求代码是在后台执行,而不是我在代码窗口点击运行按钮才运行的,也就是说我在B列输了一个数后回车就进行自动合并了。
我想这应该是要用到change事件吧 展开
3个回答
展开全部
代码粘帖到thisworkbook 模块
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 2 Then
Target.Resize(Target.Value).Merge
Target.Offset(0, -1).Resize(Target.Value).Merge
End If
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 2 Then
Target.Resize(Target.Value).Merge
Target.Offset(0, -1).Resize(Target.Value).Merge
End If
End Sub
追问
请问
Target.resize(Target.value).merge
Target.Offset(0, -1).Resize(Target.Value).Merge
这两个句子是什么意思。
明白了就给你加分了
追答
target 是你选中的单元格
target.value 是单元格里面的内容
resize() 以你选中的单元为顶点重新定义范围,如果单元格里面内容是3 就向下3格合并
merge 合并单元格
offset( 行,列) 位移用的 ,本来选的是B列合并, 列位移个-1 那么A列 也合并了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-02 · 知道合伙人软件行家
关注
展开全部
把你的表格发到57321522@qq.com
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上传截图,注明要求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询