Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA将勾号(图片)粘贴到Excel中_Vba_Excel_Bitmap - Fatal编程技术网

使用VBA将勾号(图片)粘贴到Excel中

使用VBA将勾号(图片)粘贴到Excel中,vba,excel,bitmap,Vba,Excel,Bitmap,我正在尝试将一些自定义记号添加到加载项中,我现在设置它的方式是,它们只是取消加载项工作表的隐藏,并将记号对象从加载项复制/粘贴到活动工作簿。但是,此过程会导致加载项工作簿在屏幕上闪烁一毫秒。有没有更好的设置方法?闪光灯令人讨厌。此外,我认为可以直接从数据库调用.bmp对象,而不是将它们存储在excel中。对于如何在运行宏时防止屏幕闪烁,您有什么建议吗 Sub Circle1() ' ' Circle1 Macro ' Circle with a 1 in it ' ' WB = ActiveWo

我正在尝试将一些自定义记号添加到加载项中,我现在设置它的方式是,它们只是取消加载项工作表的隐藏,并将记号对象从加载项复制/粘贴到活动工作簿。但是,此过程会导致加载项工作簿在屏幕上闪烁一毫秒。有没有更好的设置方法?闪光灯令人讨厌。此外,我认为可以直接从数据库调用.bmp对象,而不是将它们存储在excel中。对于如何在运行宏时防止屏幕闪烁,您有什么建议吗

Sub Circle1()
'
' Circle1 Macro
' Circle with a 1 in it
'
'
WB = ActiveWorkbook.Name
WS = ActiveSheet.Name
AC = ActiveCell.AddressLocal

    Application.ScreenUpdating = False
    Windows("toolbar.xlsm").Visible = True
    Workbooks("toolbar.xlsm").Worksheets("Sheet1").Shapes.Range(Array("Picture 2")).Select
    Selection.Copy
    Windows(WB).Activate
    Workbooks(WB).Worksheets(WS).Range(AC).Select
    ActiveSheet.Paste
    Windows("toolbar.xlsm").Visible = False
    Application.ScreenUpdating = True

End Sub

复制之前不应选择形状,源工作簿也是如此

尝试类似的方法(通过只指向形状而不是形状来简化):


我想如果你要复制多张图片,你可以不更新屏幕,但是这种需要会减少,因为唯一的闪烁应该是弹出的形状,这有点令人愉快。

我知道你的问题是针对图像的,但是根据你的“勾号需要”,也许Unicode符号会更简单*(即复制和粘贴)*处理单个图像的替代方案

✅ ✓ ✔ ⍻ ☑ ✗ ×x x✕ ☓ ✖ ✗ ✘ ❎ ✖ ❌ × ╳ ☓ (这些都是字符,不是图像。)

Unicode v.10有超过136000个字符可供使用……这对每个人都有好处


更多信息:
  • 维基百科:

  • 维基百科:

  • Unicode.org:

  • MSDN:


我无法测试它,但您能否避免所有选择/激活?例如工作簿(“toolbar.xlsm”)。工作表(“Sheet1”)。形状。范围(数组(“图片2”))。复制工作簿(WB)。工作表(WS)。范围(AC).Paste感谢Loveburner。我以前试图避免选择形状范围,但第一次它抛出了一个错误。但看起来它现在正在工作,我猜是用户错误。
Workbooks("toolbar.xlsm").Worksheets("Sheet1").Shapes("Picture 2").copy
ActiveSheet.Paste