从另一个工作簿中的范围更改多个工作表中的单元格的值

时间:2018-02-14 09:20:37

标签: excel vba excel-vba

所以我有一个包含大约500个工作表的工作簿,我需要将每个工作表中的单元格值(例如A1)更改为另一个工作簿范围内的值。

例如,

Workbook1中Sheet1中的A1的值= Workbook2的Sheet1中的A1

Workbook1中Sheet2中的A1的值= Workbook2的Sheet1中的A2

Workbook1中Sheet3中的A1值= Workbook2中Sheet1中的A3

我一直试图改变并使用以下内容,但无处可去,任何帮助都将受到赞赏。 感谢

Sub mycode()

For Each Worksheet InThisWorkbook.Sheets
    Range(“A1″) = “Exceltip”
Next

End Sub

2 个答案:

答案 0 :(得分:2)

试试这个:

  1. 打开目标工作簿并在变量中存储对工作簿的引用
  2. 使用For循环
  3. 遍历当前工作簿中的工作表
  4. 使用此新变量名称和ThisWorkbook完全限定您的引用,以区分不同工作簿上的范围。
  5. Sub TransferValues()
        Dim workbook2 As Workbook
        Dim i As Long
    
        Set workbook2 = Workbooks.Open("C://My Documents/.../SomeWorkbook2.xlsx")
    
        For i = 1 To ThisWorkbook.Worksheets.Count
            ThisWorkbook.Worksheets(i).Range("A1").Value = workbook2.Worksheets("Sheet1").Range("A1").Offset(i - 1, 0).Value
        Next i
    
        workbook2.Close SaveChanges:=False
    End Sub
    

答案 1 :(得分:1)

这是CallumDA代码的变体,主要是为了优化内存访问,从而优化性能(如果它成为问题):

php