以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何用VBA实现Excel查找字符替换为图片  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149103)

--  作者:qaz17909
--  发布时间:2020/4/23 11:46:00
--  如何用VBA实现Excel查找字符替换为图片
如题,想用VBA查找excel的特定字符,然后替换为图片,如何实现?
--  作者:有点蓝
--  发布时间:2020/4/23 12:13:00
--  
Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\问题\\abc.xlsx")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)\'指定工作表
    Dim range = ws.UsedRange
    Dim rgFound = range.Find("要查找的字符")
    Output.Show(rgFound.Address)
    App.quit
catch ex As exception
    Output.Show(ex.message)
    App.quit
End try

--  作者:qaz17909
--  发布时间:2020/4/23 12:22:00
--  
这个我知道的,后面呢,如何插入图片呢?
--  作者:有点蓝
--  发布时间:2020/4/23 13:43:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=147456&replyID=61001&skin=1
--  作者:qaz17909
--  发布时间:2020/4/23 20:02:00
--  
可以插入,但还有个问题,重复执行的时候,会重复添加叠加图片。现在希望第二次执行的时候,会把第一张图片覆盖,而不是叠加到第一张图片上,如何实现。我试了用Rg.Clear,但没有效果。

Dim fl As String = "C:\\Users\\Administrator\\Desktop\\新建 Microsoft Office Excel 工作表.xlsx"
Dim pic As String = "C:\\Users\\Administrator\\Desktop\\logo.png"

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.UsedRange
    Rg = ws.Cells.Find(What:="图片")
    Rg = Rg.offset(0,1)
    Rg.Clear
    ws.Shapes.AddPicture(pic, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,Rg.left, Rg.Top, 120, 30)
    Wb.Save
    app.quit
catch ex As exception
    msgbox(ex.message)
    app.quit
End try

--  作者:有点蓝
--  发布时间:2020/4/23 20:39:00
--  
试试
……
    Rg = ws.Cells.Find(What:="图片")
    Rg = Rg.offset(0,1)
    Rg.Clear
For Each shp In ws.Shapes
If shp.TopLeftCell.Address = Rg.Address Then
shp.delete
endif
Next
    ws.Shapes.AddPicture........

--  作者:qaz17909
--  发布时间:2020/4/23 20:52:00
--  
提示错误

图片点击可在新窗口打开查看此主题相关图片如下:提示错误.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/4/23 21:21:00
--  
For Each shp as object In ws.Shapes