VBA,求大神解决一下EXCEL的问题

看图,根据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行时结果会自动重算


附件可参考。提问者下载不需要财富值,请支持


追问

谢谢啊

追答

嘿嘿,别客气哈,虽然未被采纳,不过我能理解的。希望共同进步

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网