像下面这样?
选项显式
公共子GetValues()。
const col_1=“col1”,col_2=“col2”,col_3=“col3”
dim lists as object:set lists=createObject(“scripting.dictionary”)。
列表。添加列1,新集合
列表。添加列2,新集合
列表。添加第3列,新集合
将当前单元格变暗为范围
对于ActiveSheet.Range中的每个CurrentCell(“s2:s13”)。
选择case currentcell.value
案例栏1
列表(列1)。添加当前单元格。偏移量(,1)。值
案例列2
列表(列2)。添加当前单元格。偏移量(,1)。值
案例列3
列表(列3)。添加当前单元格。偏移量(,1)。值
结束选择
下一个
变暗键,项目长
对于列表中的每个键
对于item=1 to list(key).count
调试打印列表(键)(项)
下一个
下一个
末端接头
数据:
![](“https://i.stack.imgur.com/hyv4i.png”alt=“data”/)
如果您事先不知道钥匙,请使用:
选项显式
公共子GetValues()。
dim lists as object:set lists=createObject(“scripting.dictionary”)。
将当前单元格变暗为范围
对于ActiveSheet.Range中的每个CurrentCell(“s2:s13”)。
如果不是lists.exists(currentcell.value),则lists.add currentcell.value,new collection
列表(currentcell.value)。添加currentcell.offset(,1)。value
下一个
变暗键,项目长
对于列表中的每个键
对于item=1 to list(key).count
调试打印列表(键)(项)
下一个
下一个
末端接头
数据:
![Data](https://i.stack.imgur.com/HYv4i.png)
如果您事先不知道钥匙,请使用:
Option Explicit
Public Sub GetValues()
Dim lists As Object: Set lists = CreateObject("Scripting.Dictionary")
Dim currentCell As Range
For Each currentCell In ActiveSheet.Range("S2:S13")
If Not lists.exists(currentCell.Value) Then lists.Add currentCell.Value, New Collection
lists(currentCell.Value).Add currentCell.Offset(, 1).Value
Next
Dim key As Variant, item As Long
For Each key In lists
For item = 1 To lists(key).Count
Debug.Print lists(key)(item)
Next
Next
End Sub