Excel vba 每当我尝试粘贴时,粘贴特殊方法都会失败

Excel vba paste special method fails whenever i try to paste

大家好我是 vba 的新手 我正在尝试捕获 sheet 上的所有 ctrl+v 事件并将剪贴板上的任何内容粘贴到当前选定的单元格。大多数时候我想复制的是来自 firefox 或记事本 E.I 客户姓名或我们网站上的电话号码的文本,但是代码仅在我尝试粘贴到 de cell 本身时有效(在单元格编辑模式下)

    Private Sub CopyPaste()

'PasteSpecial Values Only
  ActiveCell.PasteSpecial Paste:=xlPasteValues, skipblanks:=True

此 returns 范围 class 的运行时错误 1004 pastespecial 方法失败 我也试过这个但是它 returns 也是一个错误

activecell.PasteSpecial Format:="Text", skipblanks:=True, link:=False, DisplayAsIcon:=False

请注意,仅粘贴文本和值的主要原因是因为我的 excel 具有非常特殊的单元格布局,其中包含颜色和其他内容,而普通粘贴会弄乱一切。

如果有人能帮助我,我会很高兴

Range.PasteSpecial 方法将已复制的 Range 粘贴到指定的 Range 中。所以这仅适用于范围:

ActiveCell.PasteSpecial Paste:=xlPasteValues, skipblanks:=True

需要直接访问剪贴板。 如何使用剪贴板here.

Option Explicit

Sub Init()
    Application.OnKey "^{v}", "CopyPaste"
End Sub

Public Sub CopyPaste()       
    ' MSForms.DataObject can be used when MSForms lib. is referenced
    Dim clipboard As Variant 

    Dim strContents As String

    ' http://excelmatters.com/2013/10/04/late-bound-msforms-dataobject/
    ' When no MSForms is referenced yet.
    Set clipboard = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 
    clipboard.GetFromClipboard
    strContents = clipboard.GetText
    ' Parse or format strContent if needed
    ActiveCell.Value = strContents
End Sub