VBA Excel – 查找值并复制相应的单元格

我有几张工作簿。 Sheet1是基于我们input到其他工作表中的信息的行动项目摘要。

在Sheet1中,列A标题为Tester,在那里我们手动input组需要查看的缺陷编号。

在Sheet2中,我们列出了所有的缺陷。 每个缺陷都有自己的行。 列A具有所有唯一的缺陷编号(例如,缺陷001,缺陷002,缺陷003)。

在B列中,我们有一个下拉列表,列出一个缺陷可以分配给的所有组(例如,testing人员,开发人员,客户)。

其他列有缺陷的各种细节,严重程度,SLA时间等。

现在,我们将所有的信息input到Sheet2中,然后转到Sheet1并input需要工作的小组下的缺陷编号。

我想删除所有这些的手动组件。 相反,我希望在Sheet2中input的缺陷自动出现在Sheet1的相应组下。

所以,在Sheet2上,我有一个button绑定到一个macros来更新工作簿中的各个字段。

我想添加到该macros的一些function,将执行以下操作:

  • 看第2页,B栏

  • 对于列B中具有testing器值的每一行,转到列A中相应的单元格以获取缺陷编号。

  • 在“testing人员”列(列A)下的工作表1中,我希望列出每个缺陷。

因此,如果Sheet2具有所有分配给testing人员组的Defect001,Defect003和Defect005,那么这些值将显示在Sheet1中Tester列下的一个单元格中。

既然有些人认为我是要他们为我做所有的工作,让我澄清,我不是。 我只需要一个起点……让我走向正确的方向。 我感谢任何能够让我开始走上正确道路的代码或链接。

让我知道如果我需要提供更多的细节或信息。

感谢你的帮助。

==============

按照要求,这里是我迄今尝试的代码片段:

For i = 1 To 5000 If ActiveSheet.Cells(i, 12).Value = "Tester" Then MsgBox "This Works" End If Next i 

我试图找出如何通过一个枢轴调用信息:

 Sub ListAllItemObjects() For Each pvt In ActiveSheet.PivotTables For Each fld In pvt.PivotFields For Each itm In fld.PivotItems MsgBox itm Next itm Next fld Next pvt End Sub 

想出了一个解决scheme。 可能不是最好的。 由于FindWindow非常有帮助,我不是VBA的专家。

这可能需要一些进一步的调整来做我想做的一切,但是现在它已经足够好了。

所以为了find我想要的值,对应于列B中的testing器的任何行:

 Sub UpdateStatusSummary() For i = 1 To 5000 For Each cell In ActiveSheet.Cells(1, 2) If ActiveSheet.Cells(i, 2).Value = "Tester" Then ThisWorkbook.Sheets("Data").Cells(i, 10).Value = ActiveSheet.Cells(i, 1).Value End If Next Next i End Sub 

这个Sub(它将被改变成一个Private Sub)被一个button/graphics所调用的Sub所调用。

为了将数据表中的值放到Sheet1的单元格中,我使用了这个:

 Function csvRange(myRange As Range) Dim csvRangeOutput For Each entry In myRange If Not IsEmpty(entry.Value) Then csvRangeOutput = csvRangeOutput & entry.Value & "," End If Next csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1) End Function 

使用= csvRange(Data!J2:J5000)在单元格中,您希望数据表中的逗号分隔值进入。

我玩了一段时间后可能会更好。 如果我有任何重大的突破或改变,我一定会发表。

如果有人有任何反馈或更好的方法,我将不胜感激build设性的批评。