代码之家  ›  专栏  ›  技术社区  ›  Knox

禁用警告:您已将大量数据复制到剪贴板上

  •  3
  • Knox  · 技术社区  · 16 年前

    you copied a large amount of data onto the clipboard. ...Do you want to save this data on the clipboard?

    MS Office剪贴板已禁用,因此此功能将在标准Windows剪贴板上执行。有没有办法禁用警告并将“否”设为默认值?

    7 回复  |  直到 16 年前
        1
  •  3
  •   Ron    13 年前

    有一个非常简单的解决方案。只有当剪贴板上有大量内容时,才会出现警告消息。因此,在你关门之前,确保那里只有少量的东西。

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Windows("iostatZd15.1").Activate
    ActiveWindow.WindowState = xlNormal
    ActiveSheet.Range("A1").Copy
    ActiveWindow.Close
    

    最后的第二行(紧靠结束前)是一个“虚拟”命令—一个用非常少量的数据简单地替换当前(大)剪贴板的命令。它起作用了。

        2
  •  1
  •   BIBD    16 年前

    我认为您可能必须禁用MS剪贴板。试试这个:

    1. 退出正在运行的所有程序。
    2. 单击开始,然后单击运行。键入regedit并单击OK。
    3. HKey_CURRENT_USER\Software\Microsoft\Office\9.0\Common\General
    4. 在“编辑”菜单上,指向“新建”,然后单击“DWORD值”。选择新值#1后,键入AcbControl,然后按ENTER键。

    注意:您不能通过修改注册表仅为单个Office程序禁用(或启用)Office剪贴板。

    这是我的建议 MS KB article

        3
  •  1
  •   KevenDenen    15 年前

    您可以设置窗体的OnClose事件以清除剪贴板。

    Private Declare Function apiOpenClipboard Lib "User32" Alias
    "OpenClipboard" (ByVal hWnd As Long) As Long
    
    Private Declare Function apiEmptyClipboard Lib "User32" Alias
    "EmptyClipboard" () As Long
    
    Private Declare Function apiCloseClipboard Lib "User32" Alias
    "CloseClipboard" () As Long
    
    Function EmptyClipboard()
      If apiOpenClipboard(0&) <> 0 Then
        Call apiEmptyClipboard
        Call apiCloseClipboard
      End If
    End Function
    

    然后在您的表单关闭事件中使用:

    EmptyClipboard
    
        4
  •  1
  •   David-W-Fenton    15 年前

    根据我的经验,只有在关闭应用程序时才会收到此消息。是否在返回Access之前关闭Excel?如果是这样,不要关闭它,看看你是否不再收到该消息。

    避免错误消息的唯一方法是在进入设计视图之前关闭通知,如中所示:

      DoCmd.SetWarnings False
    

    但是没有地方运行此代码,因为您只是使用Access UI编辑查询。

    我不太明白 为什么?

    如果希望它自动发生,可以使用Screen.ActiveDatasheet对象来实现。您要做的是编写一个函数:

      Public Function ChangeWarnings(bolSetting As Boolean) As Boolean
        DoCmd.Setwarnings bolSetting
      End Function
    

      Screen.ActiveDatasheet.OnActivate = "=ChangeWarnings(False)"
      Screen.ActiveDatasheet.OnDeactivate = "=ChangeWarnings(True)"
    

    注意:当打开或关闭另一个Screen.ActiveDatasheet对象时,它不会“粘住”Screen.ActiveDatasheet对象。它仅适用于指定事件操作时处于活动状态的数据表。

        5
  •  0
  •   Taryn Frank Pearson    13 年前

    对于Excel:

    Fexcel = New Microsoft.Office.Interop.Excel.Application
    Fexcel.DisplayAlerts = False
    

    对访问执行相同的操作

        6
  •  0
  •   user3246838    11 年前

    Application.CutCopyMode=False

        7
  •  0
  •   Johnny D    7 年前

    我一直遇到这个问题。必须这样做似乎很愚蠢,但下面的解决方案会让它死掉。

    ' Copy something small into the clipboard
    Range("A1").Copy
    
    ' Turn off CutCopyMode i.e., the "crawling ants"
    ' Application.CutCopyMode = False solves a lot of problems, I do it as a precaution after I copy anything
    Application.CutCopyMode = False