我创建了一个宏来计算选择的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
答案 0 :(得分:1)
如果您更改
,该怎么办?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
在复制和粘贴内容时,应该绕过子程序,而不必添加更多代码。
答案 1 :(得分:0)
调用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
这样,如果状态栏没有显示,它只会清除剪贴板。