VBA条件连接两列中的一组单元格

时间:2012-02-03 19:44:22

标签: excel vba excel-vba

对我来说,这是非常先进的。 以下是工作表布局的示例:

Row#    ColA    ColB                                 
23      7       Description 
24      8       Description 
25      
26              For cases with  
27              SpecialOptionDesc = Yes
28      9       Description 
29      
30              For cases with  
31              SomeOptionDesc = Yes
32              and 
33              AnotherOptionDesc = No
34      9       Description 
35      
36      10      Description 

当他们出现“For cases with”时,我需要整合ColB中的信息,下面有单元格。信息需要最终在ColA中具有标识号的行上。因此,在这种情况下,ColB Rows 26,27,28将全部“复制”或放入ColB第28行。同样,ColB Rows 30至34将全部位于ColB第34行。旧行(26,27,30, 31,33)可以删除捣碎在一起或其他什么。不再需要这些行的数据。

1 个答案:

答案 0 :(得分:0)

我实际上没有编译它并尝试使用Excel,但我认为如果不是所有的话,它会让你90%的方式。我稍稍离开电脑,但是当我回来时会做一些测试。

Dim cellValue As String
Dim i As Integer
Dim j As Integer
Dim strResult As String

Const endRow As Integer = 500

For i = 1 To endRow
     If LCase(ActiveSheet.Cells(i, 2).Value) = "for cases with" Then
        j = 0
        strResult = ""

        While ActiveSheet.Cells(i + j, 1).Value = "" And i + j < endRow
            strResult = strResult + " " + ActiveSheet.Cells(i + j, 2).Value

            ' delete stuff after using
            ActiveSheet.Cells(i + j, 2).Value = ""

            j = j + 1
        Wend

        ActiveSheet.Cells(i + j, 2) = strResult + " " + ActiveSheet.Cells(i + j, 2)
     End If
Next i