excel表格如何利用VBA来实现三列合并excel表格中

excel表格如何利用VBA来实现三列合并excel表格中,我想把E列F列G列的数据合并到AI列中(如图),从第三行开始,6万行结束注意F列和G列的数据可能为空哦Priv... excel表格如何利用VBA来实现三列合并excel表格中,我想把E列F列G列的数据合并到AI列中(如图),从第三行开始,6万行结束 注意F列和G列的数据可能为空哦
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then Cells(Target.Row, 37) = Cells(Target.Row, 5)
If Target.Column = 6 Then Cells(Target.Row, 37) = Cells(Target.Row, 5) & "*" & Cells(Target.Row, 6)
If Target.Column = 7 Then Cells(Target.Row, 37) = Cells(Target.Row, 5) & "*" & Cells(Target.Row, 6) & "*" & Cells(Target.Row, 7)
End Sub
这段代码能实现立即显示三个单元格的合并了,可带来了两个新的问题:请看图片(因为字数限制)
展开
 我来答
真真真白丁
2014-04-22 · TA获得超过8524个赞
知道大有可为答主
回答量:4644
采纳率:85%
帮助的人:1765万
展开全部
这个不需要VBA的,在AI3写公式:=IF(F3<>"",IF(G3<>"",E3&"*"&F3&"*"&G3,E3&"*"&F3),IF(G3<>"",E3&"*"&G3,E3))

下拉复制公式到最后一行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1af404
2014-04-23 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:4096万
展开全部

在代码窗口输入或粘贴以下VBA代码

Sub 合并()
For i = 3 To 60000
k = 0
For j = 5 To 7
If Cells(i, j) <> "" Then k = k + 1
Next
If k = 1 Then
Cells(i, 35) = Cells(i, 5)
ElseIf k = 2 Then
Cells(i, 35) = Cells(i, 5) & "*" & Cells(i, 6)
ElseIf k = 3 Then
Cells(i, 35) = Cells(i, 5) & "*" & Cells(i, 6) & "*" & Cells(i, 7)
End If
Next
End Sub
更多追问追答
追问
这个代码很好,速度也快,但我还有一个希望,该代码能不能实现在填完E  F  G列单元格自动填写,而不是要去运行宏,就像在AI3=E3&IF(F3="","","*"&F3)&IF(G3="","","*"&G3)
内写的函数公式那样。数据写到哪个,AI列就自动显示
追答
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then Cells(Target.Row, 37) = Cells(Target.Row, 5)
If Target.Column = 6 Then Cells(Target.Row, 37) = Cells(Target.Row, 5) & "*" & Cells(Target.Row, 6)
If Target.Column = 7 Then Cells(Target.Row, 37) = Cells(Target.Row, 5) & "*" & Cells(Target.Row, 6) & "*" & Cells(Target.Row, 7)
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万年金刚钻
2014-04-23 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3520万
展开全部
AI3:
=E3&IF(F3="","","*"&F3)&IF(G3="","","*"&G3)

掉楼主坑里了:
Sub togather()
Dim rC As Range
For Each rC In Range("AI3:AI60000")
rC = Cells(rC.Row, 5) & IIf(Cells(rC.Row, 6) <> 0, "*" & Cells(rC.Row, 6), vbNullString) & IIf(Cells(rC.Row, 7) <> 0, "*" & Cells(rC.Row, 7), vbNullString)
Next
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式