Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel-查找值并复制相应的单元格_Vba_Excel - Fatal编程技术网

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

VBA Excel-查找值并复制相应的单元格,vba,excel,Vba,Excel,我有一本有几页的工作簿。表1根据我们在其他表中输入的信息,作为行动项目的汇总 在表1中,A列标题为Tester,在该列下,我们手动输入小组需要审查的缺陷编号 在表2中,我们列出了所有缺陷。每个缺陷都有自己的行。 列A包含所有唯一的缺陷编号(例如,缺陷001、缺陷002、缺陷003) 在B列中,我们有一个下拉列表,其中列出了缺陷可以分配给的所有组(例如,测试人员、开发人员、客户) 其他列包含缺陷的各种详细信息、严重性、SLA时间等 现在,我们在Sheet2中输入所有信息,然后转到Sheet1,在需

我有一本有几页的工作簿。表1根据我们在其他表中输入的信息,作为行动项目的汇总

在表1中,A列标题为Tester,在该列下,我们手动输入小组需要审查的缺陷编号

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

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

其他列包含缺陷的各种详细信息、严重性、SLA时间等

现在,我们在Sheet2中输入所有信息,然后转到Sheet1,在需要处理缺陷的团队下输入缺陷编号

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

因此,在Sheet2上,我有一个按钮绑定到一个宏,该宏更新工作簿中的各个字段

我想向该宏添加一些功能,这些功能将执行以下操作:

  • 请看第2页B栏

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

  • 回到第1页的Tester列(A列)下,我希望列出每个缺陷
因此,如果表2的Defect001、Defect003和Defect005都分配给测试仪组,则这些值将显示在表1中测试仪列下的一个单元格中

因为有些人认为我是在要求他们为我做所有的工作,让我澄清一下,我不是。我只需要一个起点…让我朝着正确的方向前进。我很感激任何能让我走上正确道路的代码或链接

如果我需要提供更多细节或信息,请告诉我

谢谢你的帮助

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

根据要求,以下是我迄今为止尝试过的代码狙击手:

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

我想出了一个解决办法。可能不是最好的。正如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
此子系统(将更改为专用子系统)通过一个按钮/图形调用,该按钮/图形已分配子系统

为了将数据表中的值返回到表1的一个单元格中,我使用了以下方法:

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)

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


如果有任何人有任何反馈或更好的方法,我将非常感谢建设性的批评。

请展示您迄今为止所做的尝试。希望我能……我还没有真正弄明白怎么做。我已经提出了一些只起部分作用的东西,但是没有任何东西可以包含我想做的所有事情。你应该在你的帖子中包含这些东西,因为现在看起来你只是要求人们编码,所以不是编码服务。此外,你想做的事情并不难。你应该能够在这里搜索相关的帖子,并结合它们来满足你的需要。谢谢你的回复。我没有要求任何人为我编写代码,也没有将其视为编码服务。我只需要被指向正确的方向。如果代码是如此简单,请随意提供它或提供一些我可以从开始的地方。如果有那么多与我的难题相关的帖子,请链接到它们。哈哈,我甚至不知道你现在是不是在钓鱼。不知道?整个上午?我不想回答,因为我不想让你觉得自己很愚蠢,但如果你需要更换汽车的火花塞,你会寻找什么?如果您需要查找,请复制。。。听着,我有工作要做,但如果我明天有空,我看看能不能给你写点什么。