经过大量的搜索,并尝试和错误的方法,我终于成功地做到“选择性粘贴”。 片上我工作,我已经叫commonData
class CommonData
{
public static Worksheet DATASHEET;
}
后,该类delacred作为静态工作表,我用工作表中ThisWorkbook.cs
在的ThisWorkbook启动,我替换PASTE(^ v) by VBA功能Paste_cell
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
// replacing paste by macro function Paste_cell
CommonData.DATASHEET.Application.OnKey("^v", "Paste_cell");
}
打开您工作的Excel工作表,按下ALT + F11即VBA宏编辑器。
工具>>宏>>创建新宏, 它将在Project Explorer创建模块1, 在模块1以下代码粘贴到现在
Sub Paste_cell()
If MsgBox("You are about to Paste only Values and not the format, proceed?", vbQuestion + vbOKCancel, GSAPPNAME) = vbOK Then
On Error Resume Next
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End Sub
,如果你复制粘贴的任何值从任何Excel表中,它只会粘贴单元格数据,不会粘贴其格式。它会提示以下消息以提醒用户。 所以原始格式不会改变。
干杯,:-)