我正在研究一种基于给定列 (G) 中每一行的值生成列表的方法。目前该列表可以复制整行并完美运行。如果 G 列包含所需的文本(“卡片”),它将拉出所有行,并将它们放在另一个电子表格的列表中,没有间隙。
问题是我希望列表只包含来自每行中包含“卡”的几列的信息,而不是整行。
有没有办法让我的代码从一行中拉出特定的单元格,而不是使用 .EntireRow 函数并复制整行?
澄清一下,这个电子表格由多个不同的用户定期更新,因此信息不是静态的。行添加和更改频繁,偶尔删除。因此,我不能只将原始工作表中的单元格值复制到新列表中。
Sub AlonsoApprovedList()
Dim cell As Range
Dim NewRange As Range
Dim MyCount As Long
Dim ExistCount As Long
ExistCount = 0
MyCount = 1
'----For every cell in row G on the ESI Project Data sheet----'
For Each cell In Worksheets("ESI Project Data").Range("G6:G5000")
If cell.Value = "Card" Then
ExistCount = ExistCount + 1
If MyCount = 1 Then Set NewRange = cell.Offset(0, -1)
'----Sets up a new range to copy all data from the row if column G in that row contains the value in question----'
Set NewRange = Application.Union(NewRange, cell.EntireRow)
MyCount = MyCount + 1
End If
Next cell
If ExistCount > 0 Then
NewRange.Copy Destination:=Worksheets("Alonso Approved List").Range("A3")
End If
End Sub
附加信息:
G 列下拉数据验证列表,其中包含一项。完整列表位于不同的工作表中。用户进入每个行项目并从特定类别中进行选择。
有问题的其他列包含行项目的名称、类别(与 G 列相同)、货币价值和日期。
上面的代码循环遍历“ESI 项目数据”工作表中的列表,并通过单元格 G 中的值检测行。在此示例中,每次在单元格 G(“卡片”)中出现关键字时,它都会复制整行。我正在使用它来生成按该关键字分组的单个列表。我只希望它拉单个单元格,而不是像当前那样使用 .EntireRow 函数。我不知道该怎么做。
感谢您的时间!