在执行宏/vba时,如何将它们应用于合并的单元格?

在执行宏/vba时,如何将它们应用于合并的单元格?,vba,cells,Vba,Cells,我有一个问题:昨天这个论坛的一位成员为我的问题提供了一个很好的解决方案。我有两本类似的excel工作簿,每本都有100多张工作表,工作表名称相同。我希望VBA将数据从工作簿A中的工作表A复制到工作簿B中的工作表B Sub GetDate() Dim workbookA As Workbook, workbookB As Workbook, sheetA As Worksheet, sheetB As Worksheet, ws As Worksheet, sheetName As

我有一个问题:昨天这个论坛的一位成员为我的问题提供了一个很好的解决方案。我有两本类似的excel工作簿,每本都有100多张工作表,工作表名称相同。我希望VBA将数据从工作簿A中的工作表A复制到工作簿B中的工作表B

Sub GetDate()

Dim workbookA As Workbook, workbookB As Workbook, sheetA As Worksheet, sheetB As        Worksheet, ws As Worksheet, sheetName As String
Set workbookA = Workbooks("clients.xls")
Set workbookB = Workbooks("KYC.xls")

'Loop through each worksheet in Book A
For Each ws In workbookB.Worksheets
    Set sheetA = workbookA.Worksheets(ws.Name)
    Set sheetB = workbookB.Worksheets(ws.Name)
    sheetA.Range("C5").Copy sheetB.Range("E31")
Next
End Sub
我想再次使用它从另一个单元格中获取另一个值,并每次将其插入相应工作表的工作簿B中。问题是,在工作簿A上,我要复制的单元格是合并单元格,目标单元格也是合并单元格。我试图为每个合并的单元格命名,但似乎无法命名。如果可以解决,有人能帮忙吗

谢谢

试试看

sheetA.Range("C5").MergeArea.Copy    ' copies the merged cells that include C5
sheetB.Range("E31").PasteSpecial     ' pastes what was copied into E31 and any merged cells it is part of

我刚试过。首先它说“这里已经有数据了,你想替换它吗?”没有数据,但不管怎样,我按“是”,然后它说“运行时错误:你不能对合并的单元格这样做。这对我来说在Excel 2013上很好。试着使用.PasteSpecial。如果你想忽略此警报,请将其放在子应用程序的开头。DisplayAlerts=False“-别忘了把它还原成真的我对VBA很无知。你是想这样写吗?”?表格A.范围(“C6”).MergeArea.Copy表格B.范围(“B8”).MergeArea或类似的?sheetA.Range(“C6”).MergeCells.Copy sheetB.Range(“B8”).MergeCells.Paste SpecialI注意到,如果目标单元格未合并,则VBA工作。但是,由于我复制粘贴了一个地址,如果它们没有合并,它看起来很糟糕。完全按照答案中显示的内容编写-将范围地址更改为您想要的地址-不要更改代码的其余部分。