【发布时间】:2017-04-14 22:39:00
【问题描述】:
我正在尝试编写一个宏,该宏将根据其他单元格中的条件打印出数组中的值。我已经让宏打印出数组中的一个值,而不是其他值。电子表格如下所示:
Column 1 | Column 2
___________________
L1 |
L1 |
L2 |
L3 |
L1 |
L5 |
L1 |
数组看起来像这样: List = Array("Person1", "Person2", "Person3") 我想要做的是打印 Person1、Person2 等,每个值表示 L1 到最后一个 L1价值。它应该类似于下面的示例。
Column 1 | Column 2
___________________
L1 | Person1
L1 | Person2
L2 |
L3 |
L1 | Person3
L5 |
L1 | Person1
下面的宏部分工作,但它只打印一个人,Person3。任何帮助将不胜感激!
Sub Practice()
Dim i, j, k As Integer
Dim List As Variant
Dim LastRow As Long, CountL As Long
Dim ws As Worksheet
Set ws = ActiveWorkbook.Sheets("Sheet1")
List = Array("Person1", "Person2", "Person3")
LastRow = ws.Cells(Rows.Count, "C").End(xlUp).Row - 1
For i = LBound(List) To UBound(List)
For j = 2 To LastRow
If ws.Cells(j, 3).Value = "L1" Then
ws.Cells(j, 4) = List(i)
Else 'Do Nothing
End If
Next j
Next i
End Sub
请注意,实际电子表格中的“L”值在 C 列中,人名在 D 列中,这就是为什么宏中的列与我在此处添加的示例数据中的列不匹配的原因。
【问题讨论】: