如果可能,我需要你的帮助,如下:
我有2个工作簿,每个工作簿都有相同的工作表,但每个工作簿都有不同的数据。 表单以他们拥有数据的客户端命名。 即Sheet1 =约翰 第2页=安德鲁等。
在workbook2中,我需要从工作簿1中填写一些数据,但每次都要填写正确的工作表。 我的意思是,我想在工作簿2中,在F32中获取单元格T4中工作簿1中的数据,但是对于同一个客户端。(sheet = john,将获取与sheet = john相对应的数据 - 工作簿1) 这两本工作簿都有100多张。 我想复制到单元格F32中的工作簿b工作簿中的数据A单元格T4(但在每张工作表上,具有相同的工作表名称)
在工作簿B上我有一个模板表,每次我需要另一张表时都会被复制,所以我想在模板上应用代码 我不知道我是否能很好地解释我的需求
一位非常善良的专家提出了这个......
Dim workbookA as workbook, workbookB as workbook, sheetA as worksheet, sheetB as worksheet
Set workbookA = workbooks("WorkbookA.xlsm")
Set workbookB = workbooks("WorkbookB.xlsm")
Set sheetA = workbookA.Worksheets("sheetA")
Set sheetB = workbookA.Worksheets("sheetB")
sheetB.Range("F32").copy sheetA.Range("T4")
并且它有效(我改变了一些轻微错误的错误)但是只有我在每个变量上设置名称表A = workbookA.Worksheets(" john") sheetB = workbookB.Worksheets(" john")
但我无法为100个名字和更多
做到这一点他还建议使用:
"如果您有工作表列表,则可以使工作表变量动态化:"
Set sheetB = workbooks.Worksheets(sheetA.Range("A2").Value)
等
但我不明白我必须做什么。 有人能帮我吗? 我对变量知之甚少
答案 0 :(得分:0)
你可以使用这样的东西
Sub CopyData()
Dim workbookA As Workbook, workbookB As Workbook, sheetA As Worksheet, sheetB As Worksheet, ws As Worksheet, sheetName As String
Set workbookA = Workbooks("WorkbookA.xlsm")
Set workbookB = Workbooks("WorkbookB.xlsm")
'Loop through each worksheet in Book A
For Each ws In workbookA.Worksheets
Set sheetA = workbookA.Worksheets(ws.Name)
Set sheetB = workbookB.Worksheets(ws.Name)
sheetB.Range("F32").Copy sheetA.Range("T4")
Next
End Sub