【问题标题】:Converting excell formulae to vba for flexibility in conceating multiple cell values into single cell?将 excel 公式转换为 vba 以便灵活地将多个单元格值连接到单个单元格中?
【发布时间】:2015-12-17 19:43:36
【问题描述】:

我在两列中有数据,其范围是可变的,我需要将这些单元格的值放入两个单元格中。我使用了 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 代码。

【问题讨论】:

标签: vba excel


【解决方案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

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

【讨论】:

    【解决方案2】:

    使用以下代码在 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/

    所以所有的功劳都归于他。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多