2

我的公司只使用 MS Office 2003 产品,所以我必须坚持下去。由于我的工作性质,我需要使用很多“复制和粘贴”功能。源数据主要来自网站,我将数据粘贴到 Excel 中的单元格中。问题是剪贴板保持源格式,当我粘贴它时它会反映在单元格上。每次我用户复制和粘贴时,通过选择“粘贴为文本”选项来删除源格式真的很麻烦。所以我决定使用宏。当我尝试从网站复制和粘贴到 Excel 时,宏工作得很好,但是当我从 Excel 复制并粘贴到同一个工作表时,它会引发错误。

这是我用于从网站复制和粘贴到 Excel 的代码,没有源格式。

Sub Paste_without_any_formatting()
    ActiveSheet.PasteSpecial Format:="Text"
End Sub

我想添加另一个代码,用于从 excel 复制和粘贴到同一个工作表,就像这样。

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

我怎样才能把这两个代码放在一起?当我按下 Ctrl+V 时,我想让这些神奇地发生。谁能帮我?

4

1 回答 1

2

这是实现它的最简单的方法。

Sub Sample()
    On Error GoTo Whoa1

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Exit Sub
Pastetext:
    On Error GoTo Whoa2

    ActiveSheet.PasteSpecial Format:="Text"

    Exit Sub
Whoa1:
    Resume Pastetext
Whoa2: '<~~ If both Paste method fails then show message. Ex: Image in Clipboard
    MsgBox err.Description
End Sub

还有另一种方法可以尝试确定剪贴板数据类型,然后进行相应粘贴。

于 2012-08-01T05:29:39.337 回答