添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

VBA中使用Excel拷贝和粘贴方法是很容易的,并且很多时候为了提升代码运行效率,应尽量避免在代码中使用拷贝和站,而应优先采用直接赋值的方法。
不可否认,有些应用场景中仍然需要将某些内容放置到剪贴版中,这样可以供其他应用程序使用,如果内容已经在单元格中,那么直接使用Range对象的Copy方法就可以,但是如果内容是保存在变量中,是否可以直接放置到剪贴板,而不使用单元格做中转呢?答案是肯定的。
【方法1】使用WshShell对象

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

【代码解析】
第4行代码为需要放置到剪贴板中的字符串。
第5行代码创建WshShell对象。
第6行代码执行命令,将变量值放置到剪贴中。
在此之后,在任何应用程序中都可以使用粘贴功能(Ctrl+V组合键),将"12345"粘贴到指定位置。
【方法2】使用DataObject对象

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

【代码解析】
SetClipboard过程将字符串放置到剪贴板中。
第2行代码创建DataObject对象。
第5和6行代码将变量的值放置到剪贴板中。
GetCB函数用于读取剪贴板中的值。
第12行代码使用GetFromClipboard方法读取剪贴板。
第13行代码设置函数返回值。
DEMO过程为示例。
第17行代码调用SetClipboard过程将ABC放置到剪贴板中。
第18行代码调用GetCB函数,将剪贴板内容写入A1单元格。
第19行代码使用PasteSpecial方法,将剪贴板内容写入A2单元格。
注意:如果在Excel中直接使用Ctrl+V组合键,插入的内容为不可以识别字符,如下图A3所示。
在这里插入图片描述

VBA中使用Excel拷贝和粘贴方法是很容易的,并且很多时候为了提升代码运行效率,应尽量避免在代码中使用拷贝和站,而应优先采用直接赋值的方法。不可否认,有些应用场景中仍然需要将某些内容放置到剪贴版中,这样可以供其他应用程序使用,如果内容已经在单元格中,那么直接使用Range对象的Copy方法就可以,但是如果内容是保存在变量中,是否可以直接放置到剪贴板,而不使用单元格做中转呢?答案是肯定的。
原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板 一、主要实现以下功能:1、用鼠标选择单元格(可谓连续单元格,也可为不连续的)后,按照要求格式“证件号码:+选定内容+“,”+”选定内容“等等进行合并2、合并后的内容,直接复制到剪切板二、代码示例: Sub TestA() Set a = New DataObject '情况存放合并结果的单元格内容 Range("B2...
VBA操作剪切板一,利用MsForms.DataObject操作1,什么是DataObject对象2,用vba操作剪切板注意3,声明方式4,文本写入剪切板5,读取剪切板文本二,利用API操作剪切板1,用到得API函数2,写入剪切板3,读取4, 提取剪贴板所有数据格式的代码5,整理一个上面用得全部api 一,利用MsForms.DataObject操作 1,什么是DataObject对象 传输操作中使用的格式化文本数据的保留区域。 还保留 DataObject 中存储的文本块所对应的 格式 的列表 DataO
前几天分享了博文《如何使用VBA变量值拷贝剪贴板?》,有的网友觉得使用的是旁门左道,今天来个根正苗红的Windows API解决方案。 示例代码如下。 Private Declare Function GlobalAlloc Lib _ "kernel32.dll" (ByVal wFlags As Long, _ ByVal dwBytes As Long) As Long Private Declare Func
★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。   Bootcfg   bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。   含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。   bootcfg /default  设置默认引导项。   bootcfg /add    向引导列表中添加 Windows 安装。   bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。   注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。   bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。   注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。   bootcfg /list   列出引导列表中已有的条目。   bootcfg /disableredirect 在启动引导程序中禁用重定向。   bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]   在启动引导程序中通过指定配置启用重定向。 bootcfg /redirect com1 115200 bootcfg /redirect useBiosSettings   hkdsk   创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。   含有下列参数的 chkdsk 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 chkdsk 命令。   vol [drive:] [ chkdsk [drive:] [/p] [/r]   参数  无   如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p   即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r   找到坏扇区并恢复可读取的信息。隐含着 /p 参数。 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart   创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。   diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size]   如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式本。   创建新的分区。   /delete   删除现有分区。   device_name   要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称:   DeviceHardDisk0   drive_name   以驱动器号表示的待删除分区。仅与 /delete 同时使用。以下是驱动器名称的范例:   partition_name   以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /delete 同时使用。以下是分区名称的范例:   DeviceHardDisk0Partition1   要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。   下例将删除分区: diskpart /delete Device HardDisk0 Partition3 diskpart /delete F:   下例将在硬盘上添加一个 20 MB 的分区:   diskpart /add Device HardDisk0 20   Fixboot '打开PPT文档 Dim pptDoc As PowerPoint.Presentation Set pptDoc = pptApp.Presentations.Open("C:\Presentation.pptx") '复制Excel文件中的图表 Dim wb As Workbook Set wb = ThisWorkbook Dim sheet As Worksheet Set sheet = wb.Sheets("Sheet1") Dim chart As ChartObject For Each chart In sheet.ChartObjects chart.CopyPicture Dim slide As PowerPoint.Slide Set slide = pptDoc.Slides.Add(pptDoc.Slides.Count + 1, ppLayoutBlank) slide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Next chart '保存并关闭PPT文档 pptDoc.Save pptDoc.Close '关闭PPT应用程序 pptApp.Quit End Sub 在上面的代码中,首先打开PPT应用程序并打开要复制图表的PPT文档。然后,使用For Each循环遍历Excel文件中的所有图表,将每个图表复制为增强型图元文件,并将其粘贴到新的PPT幻灯片中。最后,保存并关闭PPT文档,并关闭PPT应用程序。 请注意,在运行此宏之前,您需要将Microsoft PowerPoint对象库添加到VBA项目中。可以通过在VBA编辑器中选择“工具”>“引用”来完成此操作,并选中“Microsoft PowerPoint XX.X对象库”的复选框。