我制作了一个宏来计算所选内容的 STDEV 并将其放在状态栏中,因此每当更改选择时都会调用。但是,它具有意外的效果,即阻止我在复制范围时将值粘贴到任何位置。我可以复制,但是当我单击其他地方粘贴时,粘贴按钮变灰,我失去了选择。如何取回我的糊状物?最好通过更改宏而不是添加新宏。
这是代码:
Public st As Double
Public rng as Range
Sub stdev()
On Error Resume Next
st = Application.WorksheetFunction.stdev(rng)
If Err.Number <> 0 then
st = 0
End If
Application.DisplayStatusBar = True
Application.StatusBar = "Stdev: " & st
End Sub
然后:
Private Sub Worksheet_SelectionChange(ByVal Target as Range)
Set rng = Target
Call stdev
End Sub
如果你改变怎么办
Private Sub Worksheet_SelectionChange(ByVal Target as Range)
Set rng = Target
Call stdev
End Sub
自
Private Sub Worksheet_SelectionChagne(ByVal Target as Range)
If Application.CutCopyMode = 1 Then Exit Sub
Set rng = Target
Call stdev
End Sub
这应该在你复制和粘贴某些东西时绕过你的子例程,而不必添加更多的代码。
调用Application.DisplayStatusBar
是清除办公室剪贴板的原因。您可以完全删除该行或使用
Sub stdev()
On Error Resume Next
st = Application.WorksheetFunction.stdev(rng)
If Err.Number <> 0 Then
st = 0
End If
If Not Application.DisplayStatusBar Then Application.DisplayStatusBar = True
Application.StatusBar = "Stdev: " & st
End Sub
这样,只有在状态栏未显示时,它才会清除剪贴板。