所以我有一个包含大约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
答案 0 :(得分:2)
试试这个:
For
循环ThisWorkbook
完全限定您的引用,以区分不同工作簿上的范围。 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