以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 如何用VBA实现Excel查找字符替换为图片 (http://www.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 -- 提示错误 |
-- 作者:有点蓝 -- 发布时间:2020/4/23 21:21:00 -- For Each shp as object In ws.Shapes |