我有一张包含多张纸的工作簿。 Sheet1根据我们在其他工作表中输入的信息,作为一种操作项的摘要。
在Sheet1中,A列标题为Tester,在此之下我们手动输入该组需要检查的缺陷编号。
在Sheet2中,我们列出了所有缺陷。每个缺陷都有自己的行。 A列具有所有唯一的缺陷编号(例如,Defect001,Defect002,Defect003)。
在B栏中,我们有一个下拉列表,其中包含可以分配缺陷的所有组(例如,Tester,Developer,Client)。
其他列具有缺陷的各种详细信息,严重性,SLA时间等。
现在,我们将所有信息输入到Sheet2中,然后转到Sheet1并输入需要处理它们的团队下的缺陷编号。
我想删除所有这些的手动组件。相反,我希望在Sheet2中输入的缺陷自动显示在Sheet1上相应的组下。
因此,在Sheet2上,我有一个绑定到宏的按钮,用于更新工作簿中的各个字段。
我想向该宏添加一些将执行以下操作的功能:
查看表2,B栏
对于B列中值为Tester的每一行,转到A列中的相应单元格以获取缺陷编号。
因此,如果Sheet2具有全部分配给Tester组的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
答案 0 :(得分:1)
想出一个解决方案。可能不是最好的。由于FindWindow非常有帮助,我不是VBA的专家。
这可能需要进一步调整以完成我想要的任何事情,但现在它的效果还不错。
所以要找到我想要的值,对应于B列中带有Tester的任何行:
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的按钮/图形调用此Sub(将更改为Private 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)。
在玩了一段时间之后,可能也可能会更好。如果我做出任何重大突破或改变,我一定会发布它们。
如果有人有任何反馈或更好的方法,我会非常感谢建设性的批评。