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
这段代码能实现立即显示三个单元格的合并了,可带来了两个新的问题:请看图片(因为字数限制) 展开
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
这段代码能实现立即显示三个单元格的合并了,可带来了两个新的问题:请看图片(因为字数限制) 展开
3个回答
展开全部
这个不需要VBA的,在AI3写公式:=IF(F3<>"",IF(G3<>"",E3&"*"&F3&"*"&G3,E3&"*"&F3),IF(G3<>"",E3&"*"&G3,E3))
下拉复制公式到最后一行。
下拉复制公式到最后一行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在代码窗口输入或粘贴以下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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
=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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询