繁体   English   中英

防止来自不同 VBA 脚本的 MsgBox 弹出

[英]Prevent a MsgBox from a different VBA script from popping up

我在工作簿中编写了一个脚本,该脚本发送一个 msgbox 警告用户不要复制和粘贴单元格。

Target.PasteSpecial xlPasteValues
    If Application.CutCopyMode = xlCopy Then
        MsgBox ("Please do not copy and paste cells. This can cause errors in log sheet")
    ElseIf Application.CutCopyMode = xlCut Then
        MsgBox ("Please do not copy and paste cells. This can cause errors in log sheet")
    End If
    
    Application.CutCopyMode = False

问题是我已经将其他脚本分配给按钮,这些按钮用于在调用 function 时复制和粘贴特定单元格,但是当发生这种情况时,我会弹出自己的警告消息。 有没有办法防止在这些情况下弹出 msgbox?

我努力了;

Application.DisplayAlerts = False

Application.DisplayAlerts = True

但这似乎不适用于脚本化的消息框

出于多种原因不要使用复制/粘贴方法。

  1. 慢的
  2. 不太可靠,尤其是使用 pastespecial
  3. 在这种情况下会导致您出现问题。

而是尝试使值或公式 = 源值或公式。

例子:
复制粘贴:

Sub Copy_Paste()
    
    Dim srcRG As Range  'Source Range
    Dim dstRG As Range  'Destination Range
    
    Set srcRG = Sheet1.Range("B2:B6")
    Set dstRG = Sheet1.Range("C2:C6")
    
    'Copy all
    srcRG.Copy dstRG
    
    'Or Copy Values
    srcRG.Copy
    dstRG.PasteSpecial xlPasteValues
    
    'Or Copy formulas
    srcRG.Copy
    dstRG.PasteSpecial xlPasteFormulas
    
End Sub

变成:

Sub Values_Formulas()
    
    Dim srcRG As Range  'Source Range
    Dim dstRG As Range  'Destination Range
    
    Set srcRG = Sheet1.Range("B2:B6")
    Set dstRG = Sheet1.Range("C2:C6")
    
    'Copy values
    dstRG.Value = srcRG.Value
        
    'Or Copy formulas
    dstRG.Formula = srcRG.Formula
    
    'Or Copy cell color
    dstRG.Interior.Color = srcRG.Interior.Color
    
End Sub

不会抛出错误。

此链接的底部,您可以找到可以通过这种方式复制的属性列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM