首页 文章

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

提问于
浏览
-1

我有一张有几张纸的工作簿 . Sheet1充当基于我们在其他工作表中输入的信息的一系列操作项的摘要 .

在Sheet1中,A列 Headers 为Tester,在此之下我们手动输入该组需要检查的缺陷编号 .

在Sheet2中,我们列出了所有缺陷 . 每个缺陷都有自己的行 . A列具有所有唯一的缺陷编号(例如,Defect001,Defect002,Defect003) .

在B列中,我们有一个下拉列表,其中所有组都可以分配缺陷(例如,Tester,Developer,Client) .

其他列具有缺陷的各种细节,严重性,SLA时间等 .

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

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

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

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

  • 见表2,B栏

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

  • 返回测试仪列下的工作表1(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

1 回答

  • 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) .

    我玩了一段时间之后能够并且可能会更好 . 如果我做出任何重大突破或改变,我一定会发布它们 .

    如果有人有任何反馈或更好的方法,我会非常感谢批评 .

相关问题