【发布时间】:2015-09-03 16:38:58
【问题描述】:
通常在用户选择一个范围并将其复制到剪贴板时使用 excel,您会注意到它会在源范围周围激活一个选取框,有些人将此动画称为“行军蚂蚁”选取框。出于我的目的,我使用键盘快捷键 Ctrl-T 创建了一个简单的 VBA 脚本,该脚本采用该剪贴板范围并将其值和格式特殊粘贴到新选择的目标范围中。 (跳过它的备忘录和我不需要粘贴到新范围的此类属性)。
如果我想添加到 VBA 脚本并让它也正确对齐目标范围文本,就会出现问题。问题是在我将代码添加到右对齐之后,它会关闭选取框并禁用源范围的剪贴板内容,以便将来任何 Ctrl-T(我的宏)热键按下更多目标范围。如果我不在 VBA 的末尾添加额外的代码,那么我可以继续将源范围粘贴到整个电子表格的许多目标范围中,而无需重新选择我想要粘贴的原始源范围/单元格电子表格。
简单的解决方案是重新选择目标范围并将其复制到剪贴板中,但这不起作用,因为在我的情况下,源选择是单个单元格,而目标单元格将是所有不同的范围。
这里是有问题的代码:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
With Selection
.HorizontalAlignment = xlRight
End With
感谢您的帮助。
【问题讨论】:
-
好问题 - 如果您包含复制单元格的行,我可以提供快速解决方法
-
不确定你的意思。如果问题是我如何复制单元格,那么该问题的答案是我在想出另一个想法之前使用了标准的 Ctrl-C 默认热键。这就是为什么我在下面输入的答案使用一种技术来创建我自己的“单元格复制”程序。那有意义吗?如果不解释,因为我确实在我的问题中留下了上面电子表格中的所有原始代码。谢谢
-
我只是建议对复制的单元格进行右对齐,之前复制它:
SourceCell.HorizontalAlignment = xlRight,然后将其复制并粘贴为格式(@987654323 @)