ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2702|回复: 7

[求助] 如何批量嵌入单元格图片

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-10-2 14:10 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 1659892128 于 2022-10-2 15:39 编辑

WPS 2019有个切换为嵌入单元格图片(DISPIMG函数)功能挺好用的,可以防止打印图片跑偏错位。

如:表格是ERP下载的含图片不需重新插入,其他格式现在我都用vba调整,唯独每次调整前要设置一下嵌入单元格图片,每次手动调麻烦;曾想过模拟键盘操作快捷键Sendkeys之类的,实在技术有限,也没研究出来!


请大佬帮忙看如何用VBA一键实现,感谢!


2022100201.jpg


D-2022100201.rar

120.31 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2022-10-3 11:42 | 显示全部楼层
wps环境下运行代码
Sub 调整()
For Each shp In ActiveSheet.Pictures
    shp.Select
    dz = shp.TopLeftCell.Address
    Range(dz).Formula = "=DISPIMG(" & """" & "ID_8330172142F9411D9C277E556595D7FB" & """" & ",1)"
    Selection.ShapeRange.Delete
Next shp
End Sub

TA的精华主题

TA的得分主题

发表于 2022-10-3 11:42 | 显示全部楼层
D-2022100201.rar (66.63 KB, 下载次数: 34)

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-10-3 12:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

代码再运行不行诶?就全变成了=DISPIMG("ID_......",1)同一个图片ID

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-10-6 11:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师,实现不了么?模拟鼠标右键菜单呢,
我本想选中图片对象后Shift+F10再R键,但是SendKeys "+{f10}" 但是为何居然没反应

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-15 06:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
最后找了个很笨的办法,用Python模拟键盘算是实现所谓的自动化。据网上说JSA有api,但官方没有公布相关接口文档,估计是会员专用吧以后(但也不至于呀 Crtl+G全选,右键也能批量切换为嵌入单元格图片)!
  1. import tkinter as tk
  2. from tkinter import filedialog
  3. import os
  4. import time

  5. import pyautogui
  6. from pywinauto import application

  7. def open_wps_file(file_path):
  8.     # 启动WPS Office应用程序
  9.     wps_app = application.Application(backend='uia')
  10.     wps_app.start(r"C:\Program Files (x86)\Kingsoft\WPS Office\11.8.2.11978\office6\et.exe")

  11.     # 等待应用程序完全启动
  12.     time.sleep(3)

  13.     # 发送快捷键,打开文件
  14.     wps_app.top_window().type_keys("^o")
  15.     time.sleep(1)

  16.     # 输入文件路径并确认
  17.     wps_app.top_window().type_keys(file_path)
  18.     time.sleep(1)
  19.     wps_app.top_window().type_keys("{ENTER}")
  20.     time.sleep(1)

  21.     # 定位到对象(B)并选择“定位”
  22.     pyautogui.hotkey('ctrl', 'g')
  23.     time.sleep(1)
  24.     pyautogui.press('b')
  25.     time.sleep(1)
  26.     pyautogui.press('t')
  27.     time.sleep(1)
  28.     pyautogui.press('down')
  29.     time.sleep(1)
  30.     pyautogui.press('right')
  31.     time.sleep(1)
  32.     # 模拟按下Shift键
  33.     pyautogui.keyDown('shift')

  34.     # 模拟按下F10键
  35.     pyautogui.keyDown('f10')

  36.     # 等待一段时间表示按键操作
  37.     time.sleep(0.5)

  38.     # 释放F10键
  39.     pyautogui.keyUp('f10')

  40.     # 释放Shift键
  41.     pyautogui.keyUp('shift')
  42.     time.sleep(1)
  43.     pyautogui.press('r')

  44.     # 模拟按下Ctrl+S键
  45.     pyautogui.hotkey('ctrl', 's')

  46. def select_file():
  47.     file_path = filedialog.askopenfilename(initialdir="/", title="Select file",
  48.                                            filetypes=(("Excel files", "*.xlsx"), ("all files", "*.*")))
  49.     # 将路径中的斜杠转换为反斜杠
  50.     file_path = file_path.replace("/", "\")
  51.     if file_path:
  52.         open_wps_file(file_path)
  53.         os.system("taskkill /f /im et.exe")

  54. # 创建主窗口
  55. root = tk.Tk()

  56. # 创建选择文件按钮,注意文件名不能有空格
  57. select_button = tk.Button(root, text="选择文件", command=select_file)
  58. select_button.pack()

  59. # 运行主循环
  60. root.mainloop()
复制代码

TA的精华主题

TA的得分主题

发表于 2023-7-16 09:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你可以使用按键精灵/uibot等目前免费的软件实现在屏幕上点点点的操作

TA的精华主题

TA的得分主题

发表于 2024-4-29 13:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
JSA提供了一个隐藏函数,直接可以插入嵌入单元格图片
rng.RangeEx.InserCellPicture(PicPath)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-3 08:25 , Processed in 0.036880 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表