Excel Назначьте значение (или несколько), если столбец содержит определенное слово - PullRequest
0 голосов
/ 01 марта 2019

У меня есть длинный список типов DOM, у которых есть имя.Например, «Другое», «После школы», «Искусство и культура» и т. Д. Каждое из названий столбцов имеет соответствующее значение.Например, «Другое» - 30, «Исследования аборигенов» - «1». Я пытаюсь в новом столбце назначить правильное значение каждому из этих столбцов.Уловка в том, что некоторые столбцы могут иметь несколько имен, разделенных через; #.Как бы я смог это сделать, разделив столбцы с несколькими именами запятой.Я хочу, чтобы это выглядело так

Name                                      Value
-----                                     -----
Music                                      36
Learning Resources                         32
After-School Activities;#Competitions      3,9   

1 Ответ

0 голосов
/ 01 марта 2019

Предполагая, что ваши имена в Column A и ваши значения в Column B.
Это выведет разделенные имена в Column C и ваши разделенные значения в `Столбец D.


Option Explicit

Sub Work_Sub()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

Dim LR As Long, iName, iValue, iCell As Range
Dim j As Long, c As Long

LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
c = 1

For Each iCell In ws.Range("A2:A" & LR)
    If InStr(iCell, ";#") Then
        iName = Split(iCell, ";#")
        iValue = Split(iCell.Offset(, 1), ",")
            If UBound(iName) = UBound(iValue) Then
                For j = LBound(iName) To UBound(iName)
                    ws.Range("C" & c) = iName(j)
                    ws.Range("D" & c) = iValue(j)
                    c = c + 1
                Next j
            Else
                ws.Range("C" & c) = "Unmatched splits"
            End If
        iName = ""
        iValue = ""
    Else
        iCell.Offset(0, 2).Value = iCell.Value
        iCell.Offset(0, 1).Value = iCell.Offset(0, 3).Value
        c = c + 1
    End If
Next iCell

End Sub

Не проверено.Вероятно, из-за убийства - просто побежал с первым методом, который пришел в голову

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...