我有用于复制的代码-现有列之后的粘贴范围。有必要也能够在现有的列之间填充它。因此它将复制的范围粘贴到选定单元格之后的下一个右侧。这里的问题是,不可能通过使用“插入”来添加更多的列。因此,现有数据应以某种方式移至右侧。通过复制-粘贴?它是唯一的解决方案,以及如何在技术上实现?
因此,如果我选择合并的单元格H:I并点击ADD,则代码会将J:K和L:M移至右侧,并将复制的范围粘贴到最近J:K的位置。
我当前的ADD按钮代码是:
Sub CopyPasteTurbineOwnWork()
Application.ScreenUpdating = False
Dim StartRange As Range
Dim cello As Range
Set cello = Worksheets("Price calculation").Cells(13, Columns.Count)
Set StartRange = Worksheets("Price calculation").Range("D13")
StartRange.MergeArea.Copy
cello.End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteAll
StartRange.Offset(1, 0).Resize(16, 2).Copy
cello.End(xlToLeft).Offset(1, 0).PasteSpecial xlPasteAll
StartRange.Offset(17, 0).MergeArea.Copy
cello.End(xlToLeft).Offset(17, 0).PasteSpecial xlPasteAll
StartRange.Offset(18, 0).Resize(2, 2).Copy
cello.End(xlToLeft).Offset(18, 0).PasteSpecial xlPasteAll
StartRange.Offset(148, 0).MergeArea.Copy
cello.End(xlToLeft).Offset(148, 0).PasteSpecial xlPasteAll
StartRange.Offset(149, 0).Resize(5, 2).Copy
cello.End(xlToLeft).Offset(149, 0).PasteSpecial xlPasteAll
Set StartRange = Nothing
Set pasteSheet = Nothing
Set cello = Nothing
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
如您陈述的那样,您想在选择的右边插入整个列,但这并不像选择列那样容易,因为您要使用两对合并的列。但是,.Insert
如果复制选择正确,则仍然可以逐列复制整个范围。即使您希望插入两个大型合并的单元格,只要它们与行的其余部分大小相同,insert也可以工作:
下面将调整复制区域的大小(从D13开始),以包括两列,以及所选区域下方的合并单元格的全部计数(加上D13的行)。然后它将复制整个区域并将其插入选择的右侧。只要此选择框的大小与您选择的合并单元格的大小相同,就可以在不移动文档其余部分的情况下插入此选择框:
Sub insert_column()
Range("D13").Resize((Selection.Offset(1, 0).MergeArea.Rows.Count) + 1, 2).Copy
Selection.Offset(0, 1).insert shift:=xlToRight
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句