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

Vba 根据同一行中的名称从其他工作表中获取总和,vba,excel,Vba,Excel,基本上,我需要做的是从不同工作表的特定单元格中获取值。棘手的是,它必须访问的工作表的名称显示在同一工作表的列中 因此,“状态”列必须从另一张表中获取编号。另一张图纸必须是同一行“sheetname”列中的名称。如果还没有纸,它应该是空的 我现在的代码是这个。到目前为止,这只需创建/打开另一张图纸 Sub CreateNewSheet() sheet_name_to_create = Range("A" & (ActiveCell.Row)).Value ' Check if filen

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

因此,“状态”列必须从另一张表中获取编号。另一张图纸必须是同一行“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

这是一个荷兰项目,因此忽略顶部的单词顺便说一句:p

我不确定是否正确,但下面的示例将使用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

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


听起来你只是想要间接函数,太完美了!谢谢
=INDIRECT(A1 & "!A1")