Excel编程 - 如何根据另一个内容向新字段添加内容

时间:2013-10-11 12:51:20

标签: excel-vba vba excel

我不知道VBA,今天下午有一个快速的任务,我不知道该怎么办。假设我有这种格式的数据

ColA           ColB                ColC

'Cat A'        'SubCat B'         'Tag1 / Tag 2 / Tag 3'

我必须创建第4列,其中包含此类数据

Cat A> SubCat B> Tag1 |猫A> SubCat B> Tag2 |猫A> SubCat B> Tag3

所以这第4列基本上包含管道分隔列表,其中列表项是类别,子类和标记的串联。每个标签都有一个列表项。这是轻微的并发症

我是否必须在VBA中执行此操作或仅使用excel函数?很抱歉这么无用,但它不是我的区域,我需要一些指示:)

非常感谢

请注意我不能简单地连接列。我必须得到C列中的每个值(tag1,tag2和tag 3),然后为每个这些标记生成一个连接。然后所有这些连接都需要进入由管道分隔的同一个单元格

2 个答案:

答案 0 :(得分:1)

通常,您可以按如下方式在Excel中与分隔符连接:

= A1& “>” 中&安培; B1& “>” 中&安培; C1

答案 1 :(得分:0)

将下面列出的函数放到VBA模块中,您可以将它用作普通的工作表函数。

= SOUser(A1, B1, C1)

VBA代码:

Public Function SOUser(ByVal ColA As String, ByVal ColB As String, ByVal ColC As String) As String

  Dim aColC() As String
  Dim iCount As Integer
  Dim sRetVal As String

  aColC = Split(ColC, "/")

  For iCount = LBound(aColC) To UBound(aColC)
    If sRetVal = "" Then
      sRetVal = ColA & " > " & ColB & " > " & aColC(iCount)
    Else
      sRetVal = sRetVal & " | " & ColA & " > " & ColB & " > " & aColC(iCount)
    End If
  Next

  SOUser = sRetVal

End Function