C# 在excel中捕获粘贴事件并仅允许粘贴

C# 在excel中捕获粘贴事件并仅允许粘贴,c#,excel,vsto,C#,Excel,Vsto,我开发了excel模板,遇到了以下问题 在某些情况下,我必须验证单元格。因此,单元格的格式必须保留。如果用户将值从不同的工作表复制到模板,则单元格的格式将被覆盖。有没有办法在excel中捕获粘贴事件并使用paste C# 提前感谢….我在谷歌上搜索了2到3天,找到了解决方法,在使用代码之前,我们必须在excel的宏设置….中检查vba对象模型的信任权限,以运行项目 //Add macro module Microsoft.Vbe.Interop.VBComponent component = t

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

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


提前感谢….

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

//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");