根据同一行中的名称从其他工作表中获取总和

时间:2015-03-05 16:28:27

标签: excel vba excel-vba

基本上我需要做的是从不同的工作表中获取特定单元格的值。棘手的部分是它必须访问的工作表的名称显示在同一工作表的列中。

Here is the image 因此状态列必须从另一个表中获取数字。另一个工作表必须是同一行中“sheetname”列的名称。如果没有纸张,它应该保持空白。

我当前的代码就是这个。所有这一切都是创建/打开其他表格到目前为止。

Sub CreateNewSheet()
sheet_name_to_create = Range("A" & (ActiveCell.Row)).Value
' Check if filename exists, if false create new else make it active
For rep = 1 To (Worksheets.Count)
    If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then
       ActiveWorkbook.Sheets(sheet_name_to_create).Activate
       Exit Sub
    End If
Next
    Sheets("TEMPLATE").Copy after:=Sheets(Sheets.Count)
    Sheets(ActiveSheet.Name).Name = sheet_name_to_create
End Sub

这是一个荷兰语项目,所以忽略顶部btw的话:p

2 个答案:

答案 0 :(得分:1)

我不确定我是否正确,但以下示例将使用A列数据作为工作表名称,并将该目标表中的单元格A1值返回到B列相同的行。

Sub findNOW()
Dim lastRow As Long
Dim WS As Worksheet

Set WS = ActiveWorkbook.Sheets("Main1")
lastRow = WS.Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To lastRow
        On Error Resume Next
        WS.Range("B" & i).Value = ThisWorkbook.Sheets(WS.Range("A" & i).Value).Range("A1").Value
    Next
End Sub

答案 1 :(得分:1)

从Rory的评论看起来,如果你把这个公式放在单元格B1中,你只需要知道另一个工作表中的单元格(示例中为A1)。

=INDIRECT(A1 & "!A1")