Excel列表表名称+值

时间:2016-05-31 19:06:23

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

我有一张包含多张表的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,我不是开发人员:))

谢谢

enter image description here

3 个答案:

答案 0 :(得分:1)

你可以放一个引用,比如“= Sheet1!B2”,其中B2将是Sheet 1中具有你想要的日期的单元格。

答案 1 :(得分:0)

使用下面的代码。我假设你在每张纸的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

答案 2 :(得分:0)

如果日期在每张纸的单元格 A1 B1 中,则:

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