通过从多个工作表中提取数据,根据特定单元格在Excel中创建列表

时间:2017-05-25 15:31:28

标签: excel vba excel-vba

我需要根据同一工作簿中多个工作表中的矩阵模板创建一个列表。 我有一个如下所示的网格:

A1专家

A2中级

A3基金会

B4一年级

C4等级2

D4 3级

因此,如果单词“completed”在单元格B3中,则该人已完成基础1级。

这将是每个人的新工作表相同的模板。前面的工作表需要有一个选项来搜索谁已经完成了什么等级。例如,“Bruce Wayne”工作表名称在他的网格中的单元格C2中有“已完成”一词(因此他已经完成了2级中级“),当我在前工作表上搜索2级中间体时,找出谁有这个,布鲁斯·韦恩将出现在一个列表中(以及其他任何在该工作表上显示“已完成”的成绩的人)

我知道如何制作宏按钮,我知道如何制作数据验证列表, 我找到了一个宏来遍历所有工作表(https://support.microsoft.com/en-hk/help/142126/macro-to-loop-through-all-worksheets-in-a-workbook

我不知道的是如何让它返回工作表名称(bruce wayne)以在名称的首页上形成一个列表而不仅仅是值(已完成/正在进行等)以及最简单的是什么报告方式:

1.为每个成绩/等级选项创建一个按钮,用于填充工作表名称列表(在此示例中总共有9个按钮)

  1. 创建2个下拉列表框,一个带有Grades,另一个带有级别,然后说明如果从下拉列表中选择了1级和基础,则它会在其旁边的另一列中填充工作表名称。

  2. 选项卡名称是从“重命名工作表”宏创建的,可以正常工作: https://www.extendoffice.com/documents/excel/2905-excel-rename-sheet-based-on-cell-value.html

    所以它不一定要报告工作表名称,它可以只报告一个单独的单元格来指示工作表名称,如果这更容易。

  3. 打字后我比以前更困惑!谁能理解这个/帮助我?!

    Sub LoopThroughSheets()
    
    If worksheets ("OVERVIEW") GOTO C5="Grade 1" And E5="Foundation" Then
    
    ' I want this bit to say if the overview worksheet cell C5 contains grade 1 and cell e5 contains foundation then
    

      =IF E13="completed", THEN ActiveSheet.Name = Range("I5:I11").Copy)
     ' I want this bit to then say if the word completed is present in cell E13 on any of the subsequent sheets it should copy the sheet name to the overview sheet in cells I5 to I11'
    
    
        Dim ws As Worksheet
        For Each ws In ActiveWorkbook.Worksheets
    
    
        Next ws
    End Sub
    

1 个答案:

答案 0 :(得分:0)

worksheet对象在VBA中具有Name属性,可以访问该属性。 Check out the documentation.

如果您需要更具体的帮助,请发布代码。