【问题标题】:trap paste event in excel and allow only pastespecial在 excel 中捕获粘贴事件并只允许 pastespecial
【发布时间】:2011-03-16 17:55:56
【问题描述】:

我开发了excel模板,遇到以下问题...

在某些情况下,我必须验证单元格。因此必须保留单元格的格式。如果用户将不同工作表中的值复制到模板,则单元格的格式会被覆盖。有没有办法在 excel 中捕获粘贴事件并使用 C# 使用 pastespecial

提前谢谢....

【问题讨论】:

    标签: c# excel vsto


    【解决方案1】:

    我用谷歌搜索了 2 到 3 天并找到了解决方法,在使用代码之前,我们必须在宏设置中检查对 vba 对象模型的信任访问....的 excel 来运行项目..

    //Add macro module
    Microsoft.Vbe.Interop.VBComponent component = this.VBProject.VBComponents
    .Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule);
                        component.CodeModule.AddFromString("Sub Paste_cell()" + Environment.NewLine + "If MsgBox(\"Normal paste operation has been disabled. You are about to Paste Values (cannot be undone), proceed?\", vbQuestion + vbOKCancel, GSAPPNAME) = vbOK Then" + Environment.NewLine + "On Error Resume Next" + Environment.NewLine + "ActiveSheet.PasteSpecial Format:=\"Text\", Link:=False, DisplayAsIcon:=False" + Environment.NewLine + "Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False" + Environment.NewLine + "End If" + Environment.NewLine + "End Sub");
    //trap paste event
    CommonData.DATASHEET.Application.OnKey("^v", "Paste_cell");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多