0

我想防止编辑单元格,因为我需要在其中保留公式。问题是,我想将另一个工作簿中的大量值复制粘贴到我的工作表中,并且粘贴的目标范围包括一些不能更改的单元格。因此,一个简单的锁定选项不起作用,因为这会阻止我一次性执行此操作。

我尝试使用一个代码,其中单元格在单元格更改时变回其预期的公式,但是,这会产生一个无限循环。请参见下面的简化示例:

Private Sub Worksheet_Change(ByVal Target As Range)


If Not Intersect(Target, Range("F28")) Is Nothing Then
    Range("F28").Formula = "=if(E28=0,0,G28/E28)"
End If

End Sub

非常感谢您的帮助,非常感谢。

编辑:从这个其他工作簿传输的自动化解决方案将不起作用,因为我以各种格式和工作簿名称接收这些文件。

4

2 回答 2

2

如果您的问题是无限循环,那么这里是该问题的常见解决方案。您只需要关闭事件一段时间,然后再重新打开它们。您的代码可能如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)
    'turns off events
    Application.EnableEvents = False
If Not Intersect(Target, Range("F28")) Is Nothing Then
    Range("F28").Formula = "=if(E28=0,0,G28/E28)"
End If
    'turns on events back
    Application.EnableEvents = True
End Sub
于 2013-06-05T16:48:52.033 回答
0

您必须制作一个输入“驻留”公式的 Sub。粘贴新值后只需调用此子。

于 2013-06-05T16:35:55.780 回答