如何将绝对单元格引用临时复制粘贴为 Excel 中的相对引用?

Rab*_*ski 7 keyboard-shortcuts copy-paste microsoft-excel

在 Excel (2007) 中,$A$3复制包含绝对引用(例如:)的单元格时,绝对引用保持不变。这是设计使然,也是使用绝对引用的原因。

问题 --但是,有时我想复制一个单元(包含绝对引用,也可能包含相对引用),然后将它们与为新块正确移动的绝对引用粘贴在一起。也就是说,我希望绝对引用在复制时表现得像相对引用,但在最终复制的结果中仍然是绝对引用。

示例——在示例截图中,我想向下复制块 A2:B3。复制时,我基本上希望=$A$3更改B3 ( ) 中的公式,以便它引用其左侧的单元格,例如=$A$11复制到 B11 时变为,如屏幕截图的底部所示。

Excel 中的示例

解决方法——我找到了一个解决方法来做到这一点,方法是:

  1. 制作整个工作表的副本(按住 ctrl 并拖动工作表标签到新位置),
  2. 然后从新工作表中剪切(ctrl-X)相关的单元格块
  3. 粘贴 (ctrl-v) 到原始工作表中。
  4. 最后删除新的临时工作表(右键单击工作表选项卡并删除)。

问题——但这对我的口味来说太多了。有没有更简单的方法(也许是一些粘贴特殊隐藏选项)?

小智 2

你总是可以尝试为此编写一个宏。excel 有一个非常好的宏记录工具,您也可以使用它,然后根据需要运行它(当然前提是您首先对程序进行一些更改)

dim firstLetter as String 
dim secondLetter as String 
dim firstNumber as integer 
dim secondNumber as integer 
dim firstReference as string 
dim secondReference as string 
dim contents as string 
firstLetter = inputbox("Where's the first column? (it's letter)") 
firstNumber = inputbox("And what's the first row? (just the number)") 
secondLetter = inputbox("What column is this going to be moved to? (the letter only.)") 
secondNumber = inputbox("And what row? (the number.)") 
contents = range(firstletter + cstr(firstnumber)).formula 
range(secondletter + cstr(secondnumber)).formula = contents 
Run Code Online (Sandbox Code Playgroud)