使用另一个单元格的内容引用另一个工作表上的单元格

时间:2016-05-07 15:03:36

标签: excel

我有一个包含许多工作表的Excel文件。

每张工作表包含两列中的一些原始数据。第一列是项目(文本中的名称),第二列是值(数字)。

我想绘制一个图表,显示一个项目是如何演变的。所以我创建了一个新工作表,并开始在所有原始数据表中引用这个项目。

手动执行此操作需要很长时间,原因有两个:

a)有许多原始数据表

b)该项目不在所有原始数据表的同一行

所以我想知道是否可以创建一个可以获取所有值的宏。如果我给宏项目,例如apples,宏将搜索所有原始数据表,找到包含项apples的行,并将值复制到我的图表中的新行。

可行吗?我将如何开始编写这样的宏?

注意:我不是要求完整的解决方案。我要求提供有用的功能名称。示例:我可以使用哪个函数来迭代所有原始数据表,我可以使用哪个函数来查找每个原始数据表中的项目等等。

  

评论后更新

是的,项目名称始终位于同一列中,即A.该值始终位于B列(在同一行中)。但行号可能会因工作表而异。

这只是我想要复制的值(即,列A中包含项目名称的行中的列B,我感兴趣。

1 个答案:

答案 0 :(得分:1)

考虑:

Sub dural()
    Dim Master As Worksheet, sh As Worksheet
    Dim GotIt As Range, r As Range, K As Long
    Set Master = Sheets("Master")
    arr = Array("raw1", "raw2", "raw3")
    K = 1

    For Each a In arr
        Set sh = Sheets(a)
        Set r = sh.Range("A:A").Cells
        Set GotIt = r.Find(What:="apples", after:=r(1))
        If GotIt Is Nothing Then
        Else
            GotIt.Resize(1, 2).Copy Master.Cells(K, 1)
            K = K + 1
        End If
    Next a
End Sub

其中arr是原始数据表的工作表名称数组,Master是摘要工作表的名称。