【问题标题】:Excel List Sheet Names + ValuesExcel 列表工作表名称 + 值
【发布时间】:2016-06-01 04:32:09
【问题描述】:

我有一个包含几张工作表的 Excel 工作簿。在每张纸上,我有 2 个带日期的单元格值(开始日期和结束日期)。

我的目标是创建一个新工作表(索引工作表),其中包含一个列出工作簿中所有现有工作表的表格,并且对于每个工作表,我将拥有开始日期和结束日期对应的单元格值。

类似这样的:

姓名开始日期结束日期

Sheet01 01/01/2016 01/02/2016

Sheet02 12/02/2016 23/03/2016

Sheet03 22/03/2016 30/04/2016

Sheet04 22/12/2016 01/12/2016

我该怎么做(如果可能避免使用 VBA,我不是开发人员:))

谢谢

【问题讨论】:

  • 这些值在表格中的什么位置?
  • 虽然有几种方法可以获取工作表列表,但手动键入它们更快、更容易。创建列表后,只需使用 INDIRECT() 函数即可。 INDIRECT("'" & A1 & "'!D1") 其中 A1 是第一个工作表名称所在的单元格,D1 是相应工作表上具有所需日期的单元格。然后就可以往下拉了。
  • 开始日期的值在 D5 中,结束日期的值在 F5 中,这些值在所有工作表中都是一致的
  • 如果您的列表从 A1 开始,那么您的两个公式将是 =INDIRECT("'" & A1 & "'!D5")=INDIRECT("'" & A1 & "'!F5"),然后将这些公式向下拖动到工作表列表的末尾。
  • 工作正常 (=INDIRECT("'" & A1 & "'!D5") and =INDIRECT("'" & A1 & "'!F5")) - 现在正在考虑如何创建一个将用户移动到正确工作表的链接,您知道如何使用此表执行此操作吗?

标签: excel excel-formula excel-2010 excel-2007 vba


【解决方案1】:

您可以只添加一个引用,例如“=Sheet1!B2”,其中 B2 将是工作表 1 中具有您想要的日期的单元格。

【讨论】:

    【解决方案2】:

    如果日期在每张工作表的 A1B1 单元格中,则:

    Sub IndexMaker()
        Dim sh As Worksheet, n As String
    
        With ThisWorkbook
                .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "index"
                Set sh = ActiveSheet
        End With
    
        For i = 1 To Sheets.Count
            n = Sheets(i).Name
            v1 = Sheets(i).Range("A1").Value
            v2 = Sheets(i).Range("B1").Value
            If n <> "index" Then
                sh.Cells(i, "A").Value = n
                sh.Cells(i, "B").Value = v1
                sh.Cells(i, "C").Value = v2
            End If
        Next i
    End Sub
    

    【讨论】:

    • 你的意思是n As String 而不是sn As String...?
    【解决方案3】:

    使用下面的代码。我假设你在每张纸的单元格 b2 和 c2 分别有开始日期和结束日期。

    Sub SheetNames()
    Columns(1).Insert
    For i = 1 To Sheets.Count
    Cells(i, 1) = Sheets(i).Name
    Cells(i, 2) = Sheets(i)!B2
    Cells(i, 3) = Sheets(i)!C2
    Next i
    
    End Sub
    

    【讨论】:

    • 我在哪里放置此代码以及如何在表格中使用它?
    • 您好,抱歉回复晚了。您不需要放置此表。相反,您需要将此代码保存在 excel 的宏 /vba 部分中。
    猜你喜欢
    • 2015-08-03
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多