我有一长串具有名称的DOM类型。例如“其他”,“课余活动”,“艺术与文化”等。这些列名称中的每一个都有对应的值。例如,“其他”是30,“原住民研究”是1。我想做的是在新列中为这些列中的每一个分配适当的值。问题在于,某些列可以使用;#分隔多个名称。我如何才能做到这一点,用逗号分隔多个名称的列。我希望它看起来像这样
Name Value
----- -----
Music 36
Learning Resources 32
After-School Activities;#Competitions 3,9
答案 0 :(得分:0)
假设您的姓名在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
未测试。可能是因为杀死-只需想到的第一种方法即可运行