看图,根据A列,把B列数据如图所示的方式提取到C列,中间用顿号隔开。求大神帮忙解决下,感激不尽,没财富了,晕死
试试:
Sub myJoin()Dim arr()
With ActiveSheet
rowEnd = .Range("b65536").End(xlUp).Row
.Range("C1").Resize(rowEnd).ClearContents
For i = rowEnd To 1 Step -1
If .Cells(i, 1) <> "" Then
x = .Cells(i, 1).Row
k = rowEnd - x + 1
If k > 1 Then
ReDim arr(1 To k)
arr = Range(.Cells(x, 2), .Cells(rowEnd, 2))
.Cells(x, 3) = Join(Application.Transpose(arr), "、")
Else
.Cells(x, 3) = .Cells(x, 2)
End If
rowEnd = x - 1
End If
Next
End With
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-01-17
哈哈,刚在百度贴吧看到你的提问,现在又在这里看到。追问
有缘千里来相会,要不给解决一下?
追答就你这个问题写一个VBA容易,但是你的问题肯定不是这样的吧。你自己会迁移修改代码嘛
追问代码注释一下还是看得懂,我的QQ:930216969
第2个回答 2015-01-17
vba 各种疑难帮解决
第3个回答 2015-01-17
用公式两个步骤就搞定了,何必用VBA?追问
求思路,求函数
追答看到LaoLwu的代码了,非常不错,收录在示例中,这里给个使用函数两步作的例子供参考:
D2:
=IF(B2="","",IF(A3="",B2&"、"&D3,B2))
E2:
=IF(A2<>"",D2,"")
效果见图:
其中,VBA结果列是原本A11=4的运行结果,而公式法的优势在于将4移到13行时结果会自动重算
附件可参考。提问者下载不需要财富值,请支持
谢谢啊
追答嘿嘿,别客气哈,虽然未被采纳,不过我能理解的。希望共同进步