当您在 Excel 2007 或 2010(可能还有更早的版本)中按下 CTRL+D 时,它会精确复制其上方的单元格(当然会修改单元格引用)。在此过程中,它会复制其他所有内容,如字体格式、填充,甚至边框(呃)。如果我可以只复制值/公式并继承当前单元格的格式,那就太棒了。
更新 2014/08/01
我想出了这个很棒的宏。但是,使用宏的缺点是,你失去了撤消的能力。我知道有一种方法可以使用宏来实现撤消功能,而无需创建撤消宏。我以前在 Excel 中做过这个。有一种方法可以告诉 Excel 以某种方式保留工作簿的状态,以便撤消操作实际上会恢复。不过,这是另一个问题,我可能最终会发布出来。
子CtrlD() 暗淡rAs范围 设置 r = 选择 应用程序.Union(r,r.Offset(-1, 0)).FillDown 子目录结束
除非有人知道更本土化的方法,否则答题者将获得分数。
答案1
通过 SHIFT + 箭头选择要填充内容的范围。
按 F2。
按 CTRL + ENTER 填充区域。
答案2
Ctrl您可以仅复制公式和值,而使用键盘快捷键('即 Ctrl 键和单引号)保留格式。
或者您可以使用填充柄向下拖动,然后选择带有“填充不带格式”的自动填充选项下拉菜单。
答案3
事实证明,您只需复制所需公式后按顺序按下以下键,即可在键盘上执行等效操作:Alt,,,,。HVO
虽然有点麻烦,但基本上可以像Ctrl+一样使用它D。
这样做是因为它会让你“粘贴公式和数字格式”,我认为这基本上就是你想要的。边框和字体样式不会被带下来。
可能有一种方法可以将其作为按钮放在功能区上并为其分配自己的快捷方式。
答案4
此宏捕获了以下功能teylyn 的回答(自动填充而不格式化)在 VBA 中,受到您的代码的启发:
Sub Extend_Content_From_Above()
Dim above As Range
For Each cur In Selection
Set above = cur.Offset(-1, 0)
above.AutoFill Destination:=Range(above, cur), Type:=xlFillValues
Next cur
End Sub
请注意,它明确处理多单元格选择,因为 Excel 对此的本机处理很神秘。