首页 文章

将excell公式转换为vba可以灵活地将多个单元格值隐藏到单个单元格中?

提问于
浏览
0

我有两列数据,其范围是可变的,我需要将这些单元格的值分成两个单元格 . 我使用了Excel公式,但由于范围是可变的,我觉得它不可靠 .

假设数据在A列和B列中,如下所示,输出单元格为D1和E1:

A              B                 C                                  D

AA            BB            AA,A,AAA,AAAA,DD               BB,B,BBB,BBBB,DD
A             B
AAA           BBB
AAAA          BBBB
DD            DD

Excel公式:

D1 = (A1&","&A2&","&A3&","&A4&","&A5)

E1 = (B1&","&B2&","&B3&","&B4&","&B5)

这里的范围是直到 5 但它没有固定它可以变化 . 格式如公式中所述 .

请帮帮我!如果可能的话,我想拥有VBA代码 .

2 回答

  • 1

    您可以将以下代码放入工作簿中的VBA模块,并使用工作簿上的函数 =ConcatRange(range) 来实现您的需求

    Function ConcatRange(rng As Range) As String
    
    Dim output As String
    Dim r As Range
    
    For Each r In rng
        output = output & r & ", "
    Next r
    
    ConcatRange = Left(output, Len(output) - 2)
    
    End Function
    

    例如,对于单元格 C1 使用 =ConcatRange(A1:A5)

  • 1

    使用以下代码在VBA中创建Excel函数:

    Function myConCat(S As Range) As String
    
      Dim cell As Range
      Dim con As String
      Dim I As Integer
    
      I = 1
    
      For Each cell In S
          If I = 1 Then
              con = cell
          ElseIf cell <> "" Then
              con = con & ", " & cell
          End If
    
          I = I + 1
      Next cell
    
      myConCat = con
    End Function
    

    然后在单元格C1中,放入:

    =myConCat(A1:A5)
    

    在D1中,放

    =myConCat(B1:B5)
    

    然后,您可以将单元格范围更改为您喜欢的任何内容 .

    我从Shane Devinshere的帖子中得到了这个帖子:http://www.pcreview.co.uk/threads/combine-text-from-multiple-cells-into-one-cell-a1-a2-a3.3858902/

    所以所有的功劳归于他 .

    希望这有帮助!

相关问题