首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >粘贴现有数据之间的单元格

粘贴现有数据之间的单元格
EN

Stack Overflow用户
提问于 2019-11-01 11:14:03
回答 1查看 48关注 0票数 0

在现有列之后,我有复制粘贴范围的代码。还需要能够在现有的列之间使用。因此,它将粘贴复制的范围后,右下一个选定的单元格。这里的问题是不可能使用"Insert“来添加更多的列。因此,现有的数据应该以某种方式向右移动。通过复制粘贴?这是唯一的解决方案吗?技术上是如何做到的?

因此,如果我选择合并的单元格H:I并点击ADD,代码将把J:K和L:M移动到右边,并将复制的范围粘贴到J:K最近出现的位置。

我当前添加按钮的代码是:

代码语言:javascript
代码运行次数:0
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-01 11:56:17

正如您所述,您希望插入所选列的整个列,但这并不像选择该列那么容易,因为您使用的是2对合并列。但是,与其逐列复制整个范围,如果您使复制选择正确,您仍然可以复制.Insert。即使您希望插入两个大型合并单元格,只要它们与行的其余部分大小相同,插入也会工作:

下面将调整复制区域的大小(从D13开始),以包括两列,以及所选单元格以下的合并单元格的全部计数(加上D13行)。然后,它将复制整个区域并将其插入所选内容的右侧。只要选择单元格的大小与您选择的右边相同,就可以插入,而无需移动文档的其余部分。

代码语言:javascript
代码运行次数:0
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58658299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档