Range1.Copy
Range2.PasteSpecial Paste:=xlPasteFormulas, SkipBlanks:=True
如果Range1
和Range2
具有相同的维度,则此代码可以毫无问题地执行。期望您复制的范围中的公式将插入到目标范围中,但其中的任何空白单元格Range1
都不会将其公式复制到 中Range2
,相反,任何当前单元格值都将保持原样。
我发现这在合并的单元格上失败了。下图演示了使用内置选择性粘贴 UI 的等效操作,该操作以相同的方式失败:
谁能想到一个不涉及循环的优雅解决方法?
请注意,仅使用 的变体是Range1.Formula = Range2.Formula
不够的,因为它会Range2
用空白(空)值覆盖不需要的单元格。
我已经删除了无循环限制,因为否则似乎没有完美的解决方案。