我当前的宏从一页(A)复制数据,在另一页(B)中粘贴。
在第A页中,我合并了单元格,当它粘贴在B中时,这些单元格未合并。
我可以添加任何代码以确保合并的单元格不会合并吗?
这就是我试过的,
export default Controller.extend({
isEdit: false,
actions: {
editTodo: function(todo) {
this.toggleProperty('isEdit');
},
cancelEdit: function () {
this.toggleProperty('isEdit');
}
},
})
发布新尝试的代码:
Case paste_cx Like "*Merged Cells*" Or select_cx Like "*Print Area*" Or select_cx Like "*Box*"
ActiveSheet.Paste
Range(to_col_start & to_lin_start & ":" & to_col_end & to_lin_end).Copy
Range(to_col_start & to_lin_start & ":" & to_col_end & to_lin_end).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
答案 0 :(得分:2)
如果您使用宏录制器并尝试获取所需内容,您会看到xlPasteAllUsingSourceTheme
是PasteSpecial
类型,它会保留合并单元格。因此,另外添加此行。它会保持合并:
With Range(to_col_start & to_lin_start & ":" & to_col_end & to_lin_end)
.PasteSpecial Paste:=xlPasteAllUsingSourceTheme
End With
如果您想保留这两种值和格式,请相互使用xlPasteValues
和xlPasteFormats
:
With Range(to_col_start & to_lin_start & ":" & to_col_end & to_lin_end)
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
MSDN for XlPasteType Enumeration
这是一个最小的工作示例,代码从第一个工作表复制范围并将其粘贴到第二个工作表。它需要注意复制值并完全按原样粘贴合并的单元格:
Public Sub TestMe()
Dim mySourceRng As Range
Dim myTargetRng As Range
Set mySourceRng = Worksheets(1).Range("A1:F10")
Set myTargetRng = Worksheets(2).Range("A1:F10")
mySourceRng.Copy
With myTargetRng
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
Application.CutCopyMode = False
End Sub