【问题标题】:create list in excel based upon specific cells by pulling data from multiple sheets通过从多个工作表中提取数据,根据特定单元格在 excel 中创建列表
【发布时间】:2017-05-25 15:31:27
【问题描述】:

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

A1 专家

A2 中级

A3 基础

B4 一年级

C4 2 级

D4 3 级

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

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

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

我不知道的是如何让它返回工作表名称(布鲁斯韦恩)以在名称的首页上形成一个列表,而不仅仅是值(完成/正在进行等),什么是最简单的举报方式:

1.为填充工作表名称列表的每个年级/级别选项创建一个按钮(在此示例中总共有 9 个按钮)

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

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

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

我打字后比以前更困惑!任何人都可以理解/帮助我吗?!

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

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

    【讨论】:

    • 如果这完全错了,我很抱歉,我是 VBA 新手(我工作的最后两周才使用它,通常我只是录制一个宏并分配一个按钮!)
    • Sub LoopThroughSheets() If worksheets ("OVERVIEW") GOTO C5="Grade 1" And E5="Foundation" Then ' 我想说明一下概览工作表单元格 C5 是否包含第 1 级和单元格 e5 包含基础,然后 ' =IF E13="completed", THEN ActiveSheet.Name = Range("I5:I11").Copy) ' 我希望这个位然后说明在单元格 E13 中是否存在已完成的单词随后的工作表应该将工作表名称复制到单元格 I5 到 I11' 中的概览工作表' Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Next ws End Sub
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多