推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

如何使用VBA将变量值拷贝到剪贴板?

   2023-08-04 网络整理佚名1870
核心提示:第4行代码为需要放置到剪贴板中的字符串。第6行代码执行命令,将变量值放置到剪贴中。第5和6行代码将变量的值放置到剪贴板中。GetCB函数用于读取剪贴板中的值。第12行代码使用方法读取剪贴板。第17行代码调用过程将ABC放置到剪贴板中。第18行代码调用GetCB函数,将剪贴板内容写入A1单元格。第19行代码使用方法,将剪贴板内容写入A2单元格。

在VBA中使用Excel的复制粘贴方法是非常容易的,而且很多时候,为了提高代码操作的效率,应该尽量避免在代码中使用复制粘贴,而应该优先考虑直接赋值的方法。

不可否认的是,在某些应用场景下,仍然需要将某些内容放入剪贴板中,以便于其他应用程序使用。 如果内容已经在单元格中,那么可以直接使用Range对象的Copy方法,但是如果内容保存在变量中,是否可以直接放在剪贴板上,而不是使用单元格进行传输呢? 答案是肯定的。

【方法一】使用对象

Sub PutDataInClipboard()
    Dim objShell As Object
    Dim strInt  As String
    strInt = "12345"
    Set objShell = CreateObject("Wscript.shell")
    objShell.Run "cmd /C echo|set/p=" & strInt & "| CLIP", 2
End Sub

【代码分析】

第四行代码是需要放入剪贴板的字符串。

第 5 行创建对象。

第六行代码执行命令并将变量值放入剪辑中。

之后,您可以在任何应用程序中使用粘贴功能(Ctrl+V组合键)将“12345”粘贴到指定位置。

[方法2]使用对象

Sub SetClipboard(ByVal strInt As String)
    Dim objDO As Object
    Set objDO = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    With objDO
        .settext strInt
        .putinclipboard
    End With
End Sub
Public Function GetCB() As String
   Set objDO = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    With objDO
        .GetFromClipboard
        GetCB = .GetText
    End With
End Function
Sub DEMO()
    Call SetClipboard("ABC")
    [A1] = GetCB
    [A2].PasteSpecial Paste:=xlPasteAll
End Sub

【代码分析】

该过程将一个字符串放在剪贴板上。

第二行代码创建对象。

第 5 行和第 6 行将变量的值放在剪贴板上。

GetCB函数用于读取剪贴板中的值。

第12行使用读取剪贴板的方法。

第13行代码设置函数的返回值。

DEMO过程就是一个例子。

第 17 行调用将 ABC 放入剪贴板的过程。

第 18 行调用 GetCB 函数将剪贴板的内容写入单元格 A1。

第19行代码使用该方法将剪贴板的内容写入A2单元格。

注意:如果在Excel中直接使用Ctrl+V组合键,插入的内容将会是无法识别的字符,如下图A3所示。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON