VBA:根据当前工作簿的单元格值复制另一个工作簿中的数据

目前,我有一个工作簿在同一个文件夹中循环工作簿,将特定单元格的数据复制回主工作簿。 如果我想更改从代码复制单元格的单元格,我将不得不在代码中更改此值。

但是,我也有同事需要使用这张表格来收集其他工作簿的数据。 – 所以我需要使这个使用友好。 我想要做的是让代码读取精简版中的单元格值,并将此单元格值用作从其复制的单元格。

例:

如果我在工作簿单元格A1中键入“B3”并运行macros,macros将把原始表格B3中的数据复制到工作簿的第一个单元格中。 有没有人有任何想法如何做到这一点?

或者类似的东西:

.Cells(1).Value = originsheet.Range(Range("CellValue from destinationsheet A1").Value).Value 

这是我使用的代码:

  Sub Consolidate() Dim wkbkorigin As Workbook Dim originsheet As Worksheet Dim destsheet As Worksheet Dim ResultRow As Long Dim Fname As String Dim RngDest As Range Set destsheet = ThisWorkbook.Worksheets("Sheet1") Set RngDest = destsheet.Cells(Rows.Count, 1).End(xlUp) _ .Offset(1, 0).EntireRow Fname = Dir(ThisWorkbook.Path & "/*.xlsx") 'loop through each file in folder (excluding this one) Do While Fname <> "" And Fname <> ThisWorkbook.Name If Fname <> ThisWorkbook.Name Then Set wkbkorigin = Workbooks.Open(ThisWorkbook.Path & "/" & Fname) Set originsheet = wkbkorigin.Worksheets(1) With RngDest .Cells(1).Value = originsheet.Range(Range("A1").Value).Value .Cells(2).Value = originsheet.Range(Range("A2").Value).Value .Cells(3).Value = originsheet.Range(Range("A3").Value).Value .Cells(4).Value = originsheet.Range(Range("A4").Value).Value .Cells(5).Value = originsheet.Range(Range("A5").Value).Value End With wkbkorigin.Close SaveChanges:=False 'close current file Set RngDest = RngDest.Offset(1, 0) End If Fname = Dir() 'get next file Loop End Sub 

而我的意思是,如果我不清楚的图片 : 在这里input图片描述

我很抱歉,但我相信你还没有明确表态。 然而,你可能试图得到这样的东西(纠正我,如果我错了):

 destinationsheet.Range("A1") = originsheet.Range(destinationsheet.Range("A1")) 

这将使您的主工作簿中的值replace其他工作表的单元格地址中的内容。