宏 - 复制和粘贴

时间:2012-08-01 03:37:54

标签: excel vba excel-vba excel-2003

我的公司只使用MS Office 2003产品,所以我必须坚持下去。由于我的工作性质,我需要使用很多“复制和粘贴”功能。源数据主要来自网站,我将数据粘贴到Excel中的单元格中。问题是剪贴板保持源格式化,当我粘贴它时它反映在单元格上。每次用户复制和粘贴时,通过选择“粘贴为文本”选项来删除源格式非常麻烦。所以我决定使用Macro。当我尝试从网站复制并粘贴到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时,我想神奇地发生这些。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分: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

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