VBA Условная конкатенация группы ячеек в двух столбцах - PullRequest
0 голосов
/ 03 февраля 2012

Это очень далеко, чтобы я мог понять.Вот пример макета рабочего листа:

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 

Мне нужно объединить информацию в ColB, когда появится сообщение «Для случаев с», с ячейками под ним.Информация должна попасть в строку с идентифицирующим номером в ColA.Таким образом, в этом случае строки 26, 27, 28 ColB будут все «скопированы» или что-то еще в строку 28 ColB. Аналогично, строки 30 ColB, хотя все 34 будут в строке 34 ColB.31, 33) можно удалить пюре вместе или что угодно.Данные по этим строкам больше не понадобятся.

1 Ответ

0 голосов
/ 03 февраля 2012

Я на самом деле не скомпилировал и не попробовал 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...