ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 利用vba在word报名表内插入个人头像图片,为什么执行不下去

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-23 23:23 | 显示全部楼层 |阅读模式
学习其他人的代码,根据自己需要,修改了一下
利用vba在word表格内插入图片,为什么执行不下去?代码如下




Sub 插入图片()


Dim fd As FileDialog, arr(0 To 1), brr(0 To 1)
Set fd = Application.FileDialog(msoFileDialogFolderPicker)   '选择图片所在文件夹
fd.Show

12345
tupianming = Dir(fd.SelectedItems(1) & "\*.*")         '读取图片名称
'MsgBox (tupianming)

Do
     i = s + 1
     vv = VBA.Split(tupianming, ".")(0)
   '  MsgBox (vv)
     
     On Error Resume Next
     biaogeming = Replace(ActiveDocument.Tables(i).Cell(1, 2).Range, " ", "")          '读取表格中第一行每二列单元格的名称
     
          biaogeming = Left(biaogeming, Len(biaogeming) - 1)
    ' MsgBox (biaogeming)
   
   
    '现在的问题就是下面这个判断始终不能运行,不管是不是名字相同,都会跳出????
   
     If biaogeming = vv Then                         '判断图片名称和单元格名称是否一致
     
     
     
     ActiveDocument.Tables(i).AllowAutoFit = False
     
     ActiveDocument.Tables(i).Cell(1, 7).Range.InlineShapes.AddPicture fd.SelectedItems(1) & "/" & tupianming
        ' fd.SelectedItems (1) & "/" & nm
         
     s = s + 1
     GoTo 12345
           If i = ActiveDocument.Tables.Count Then
             Exit Do
           End If
     
    End If
     
tupianming = Dir
Loop Until tupianming = ""


报名表.zip

1.15 MB, 下载次数: 13

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-23 23:25 | 显示全部楼层
新手,技术小白,路过的大神帮忙修改一下

TA的精华主题

TA的得分主题

发表于 2024-6-24 07:25 来自手机 | 显示全部楼层
猜一个,看对不对,我觉得你要监视一下你的判断条件是不是true,不要用肉眼看
Screenshot_2024-06-24-07-22-26-373_com.quark.browser-edit.jpg

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:27 | 显示全部楼层
Sub 插入图片()
Dim fd As FileDialog, arr(0 To 1), brr(0 To 1)
Set fd = Application.FileDialog(msoFileDialogFolderPicker)   '选择图片所在文件夹
fd.Show
tupianming = Dir(fd.SelectedItems(1) & "\*.*")         '读取图片名称
For Each shp In ActiveDocument.InlineShapes
    shp.Delete
Next shp '''删除原来的图片
Do While tupianming <> ""
    vv = VBA.Split(tupianming, ".")(0)
    For i = 1 To ActiveDocument.Tables.Count
        biaogeming = Trim(ActiveDocument.Tables(i).Cell(1, 2).Range)          '读取表格中第一行每二列单元格的名称
        biaogeming = Left(biaogeming, Len(biaogeming) - 1)
        If InStr(biaogeming, vv) > 0 Then                        '判断图片名称和单元格名称是否一致
            ActiveDocument.Tables(i).AllowAutoFit = False
            tt = fd.SelectedItems(1) & "\" & tupianming
            ActiveDocument.Tables(i).Cell(1, 7).Range.InlineShapes.AddPicture FileName:=tt, LinkToFile:=False, SaveWithDocument:=True '直接插入
            Exit For
        End If
    Next i
tupianming = Dir
Loop
End Sub

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
报名表.rar (906.07 KB, 下载次数: 18)

TA的精华主题

TA的得分主题

发表于 2024-6-24 12:24 | 显示全部楼层
  1. Sub 编程好习惯()
  2.    
  3.     With Application.FileDialog(msoFileDialogFolderPicker)
  4.         If .Show = -1 Then
  5.             fd = .SelectedItems(1) & ""
  6.         Else
  7.             Exit Sub '取消选择退出
  8.         End If
  9.     End With
  10.               
  11.     fn = Dir(fd & "*.*") 'FileName
  12.     Do
  13.         i = i + 1
  14.         ' Image 文件名  剔除拓展名    删除手抖输入的空白
  15.         img = Application.CleanString(VBA.Split(fn, ".")(0))
  16.         '表格中的姓名
  17.         nm = ActiveDocument.Tables(i).Cell(1, 2).Range.Text 'Name
  18.         '表格文本后面有两个字符  你原来就是这里处理有问题
  19.         nm = Left(nm, Len(nm) - 2)
  20.         '  删除手抖输入的空白
  21.         nm = Application.CleanString(nm)
  22.         
  23.         
  24.         '判断文件名与姓名是否相符   你原来就是这里处理有问题
  25.         If img = nm Then
  26.             ActiveDocument.Tables(i).AllowAutoFit = False
  27.             '串接图片文件路径
  28.             fp = fd & fn
  29.             '插入图片
  30.             ActiveDocument.Tables(i).Cell(1, 7).Range.InlineShapes.AddPicture fp
  31.         End If
  32.                         
  33.         '表格填满
  34.         If i = ActiveDocument.Tables.Count Then Exit Do

  35.         '下一个文件
  36.         fn = Dir
  37.     Loop Until fn = ""
  38.             
  39.             
  40. End Sub


复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 18:54 , Processed in 0.044139 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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