我有一个例程来复制隐藏的备份公式,以便在Excel 2003/2007/2010中正常工作。当我在2013年运行它时,它开始通过选择,然后退出,没有给出错误消息。当测试这个循环时,它可能运行2个单元,它可能运行5个单元,但从不超过6.因为选择主要是非连续单元组,我不能轻易地一次复制整个范围没有大手术重命名所有范围。
知道2013年发生了什么事吗?我现在可以做些什么来使其发挥作用?
以下是未运行的代码的核心:
Sub TestLoop()
Dim c As Range
For Each c In Selection
If c.Locked = False And Not IsNumeric(c.Offset(0, 30).Formula) _
And c.Offset(0, 30).Formula <> "" Then
With c
.Offset(0, 30).Copy
.PasteSpecial xlPasteFormulas
End With
End If
Next c
End Sub
答案 0 :(得分:3)
尝试跳过剪贴板并直接复制公式。我遇到了像这样使用剪贴板的宏的问题 - 我认为由于剪贴板确实是针对最终用户的,它只是不被程序用作临时数据存储,所以你会遇到一些片状行为。
更改此代码:
.Offset(0, 30).Copy
.PasteSpecial xlPasteFormulas
对此:
.FormulaR1C1 = .Offset(0, 30).FormulaR1C1