请教,word插入图片问题。

qq_40952908 2017-11-08 03:34:11
请教,word插入图片问题。
在同一个目录下,有十至30左右的DOC文件和相等数量的JPG文件,文件名相同,如:张三.doc和张三.jpg
要把图片插入到doc文件中。

指定文件名时,没有出错,但使用变量时,就过不去。

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
Dim objWdRange As Word.Range
Dim GraphImage As String
GraphImage = "c:\456\timg.jpg"
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("c:\456\timg.doc")

Selection.MoveDown Unit:=wdLine, Count:=2


With wrdDoc
Dim wrdPic As Word.InlineShape
Set wrdPic = .Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
wrdPic.ScaleHeight = 50
wrdPic.ScaleWidth = 50
ActiveDocument.Save
End With
wrdDoc.Close
Set wrdDoc = Nothing
wrdApp.Quit
Set wrdApp = Nothing

这个是指定文件名的 可以通过

'文件名分类
Dim a() As String
Dim doc() As String
Dim jpg() As String

Dim i As Integer
Dim j As Integer

Dim fn As String


Dim fso As Object
Dim folder As Object
Dim subfolder As Object
Dim file As Object
Set fso = CreateObject("scripting.filesystemobject") '??FSO??
Set folder = fso.getfolder("c:\456")
TextBox2.Text = ""
For Each file In folder.Files '??????????
' MsgBox file '?????

If TextBox2.Text = "" Then
TextBox2.Text = file & ","
Else




TextBox2.Text = TextBox2.Text & vbCrLf & file & ","
' TextBox1.TextBox = file
'?????
End If
Next
Set fso = Nothing
Set folder = Nothing

a = Split(TextBox2.Text, ",") '??????
doc = Split(TextBox2.Text, ",")
jpg = Split(TextBox2.Text, ",")




For i = 0 To UBound(doc) '????.doc ??????
If doc(i) <> "" Then
If Right(doc(i), 4) <> ".doc" Then
doc(i) = ""
End If

If Left(doc(i), 1) = "~$" Then
doc(i) = ""
End If
End If

Next


For i = 0 To UBound(doc) '????.jpg ??????
If jpg(i) <> "" Then
If Right(jpg(i), 4) <> ".jpg" Then
jpg(i) = ""
End If
End If

Next


TextBox2.Text = ""

For i = 0 To UBound(doc) '??doc

If doc(i) <> "" Then

If TextBox2.Text = "" Then
TextBox2.Text = doc(i)
Else
TextBox2.Text = TextBox2.Text & vbCrLf & doc(i)
End If

End If

Next

TextBox3.Text = ""

For i = 0 To UBound(jpg) '??jpg

If jpg(i) <> "" Then

If TextBox3.Text = "" Then
TextBox3.Text = jpg(i)
Else
TextBox3.Text = TextBox3.Text & vbCrLf & jpg(i)
End If

End If


Next


'分类完成


'插图


'-----------------------------------------------------


For i = 0 To UBound(doc)
If doc(i) <> "" Then
j = 0

j = i + 1





Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
Dim objWdRange As Word.Range
Dim GraphImage As String
GraphImage = jpg(j)
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(doc(i))




With wrdDoc
Dim wrdPic As Word.InlineShape
Set wrdPic = .Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
wrdPic.ScaleHeight = 50
wrdPic.ScaleWidth = 50
ActiveDocument.Save
End With
wrdDoc.Close
Set wrdDoc = Nothing
wrdApp.Quit
Set wrdApp = Nothing




Label1.Caption = "完成"






' Selection.InlineShapes(1).Height = 76.55
' Selection.InlineShapes(1).Width = 62.35

' Selection.Cut
' Selection.MoveDown Unit:=wdLine, Count:=2
' Selection.PasteAndFormat (wdPasteDefault)
' ActiveDocument.Save
' ActiveDocument.Close
End If

Next


这是变量名为文件名,在插入图片时,总是报错。
请大神帮我看看,万分感谢

...全文
682 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40952908 2017-11-08
  • 打赏
  • 举报
回复
还是不行呀
赵4老师 2017-11-08
  • 打赏
  • 举报
回复
  Dim wrdApp As Word.Application
  Dim wrdDoc As Word.Document
  Set wrdApp = CreateObject("Word.Application")
  Dim objWdRange As Word.Range
  Dim GraphImage As String
  GraphImage = "c:\456\timg.jpg"
  wrdApp.Visible = True
  Set wrdDoc = wrdApp.Documents.Open("c:\456\timg.doc")
  Selection.MoveDown Unit:=wdLine, Count:=2
  With wrdDoc
    Dim wrdPic As Word.InlineShape
    Set wrdPic = .Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
    wrdPic.ScaleHeight = 50
    wrdPic.ScaleWidth = 50
    ActiveDocument.Save
  End With
  wrdDoc.Close
  Set wrdDoc = Nothing
  wrdApp.Quit
  Set wrdApp = Nothing
'这个是指定文件名的 可以通过


'文件名分类
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim objWdRange As Word.Range
Dim GraphImage As String
Dim wrdPic As Word.InlineShape
Dim a() As String
Dim doc() As String
Dim jpg() As String
Dim i As Integer
Dim j As Integer
Dim fn As String
Dim fso As Object
Dim folder As Object
Dim subfolder As Object
Dim file As Object
Set fso = CreateObject("scripting.filesystemobject")                          '??FSO??
Set folder = fso.getfolder("c:\456")
TextBox2.Text = ""
For Each file In folder.Files                     '??????????
           '   MsgBox file     '?????
              If TextBox2.Text = "" Then
              TextBox2.Text = file & ","
              Else
              TextBox2.Text = TextBox2.Text & vbCrLf & file & ","
           '  TextBox1.TextBox = file
              '?????
               End If
Next
Set fso = Nothing
Set folder = Nothing
a = Split(TextBox2.Text, ",")                    '??????
doc = Split(TextBox2.Text, ",")
jpg = Split(TextBox2.Text, ",")
For i = 0 To UBound(doc)     '????.doc ??????
  If doc(i) <> "" Then
    If Right(doc(i), 4) <> ".doc" Then
      doc(i) = ""
    End If
    If Left(doc(i), 1) = "~$" Then
          doc(i) = ""
       End If
  End If
Next
For i = 0 To UBound(doc)     '????.jpg ??????
  If jpg(i) <> "" Then
    If Right(jpg(i), 4) <> ".jpg" Then
      jpg(i) = ""
    End If
  End If
Next
TextBox2.Text = ""
For i = 0 To UBound(doc)     '??doc
    If doc(i) <> "" Then
       If TextBox2.Text = "" Then
          TextBox2.Text = doc(i)
       Else
          TextBox2.Text = TextBox2.Text & vbCrLf & doc(i)
       End If
    End If
 Next
TextBox3.Text = ""
For i = 0 To UBound(jpg)     '??jpg
    If jpg(i) <> "" Then
       If TextBox3.Text = "" Then
          TextBox3.Text = jpg(i)
       Else
          TextBox3.Text = TextBox3.Text & vbCrLf & jpg(i)
       End If
    End If
Next
'分类完成
'插图
'-----------------------------------------------------
For i = 0 To UBound(doc)
    If doc(i) <> "" Then
        'j = 0
        j = i + 1
        Set wrdApp = CreateObject("Word.Application")
        GraphImage = jpg(j)
        Debug.Print "jpg(j:"+CStr(j)+"):["+jpg(j)+"]" '★加这句在立即窗口显示jpg(j)的值辅助调试错误:比如为""或前面少c:\456\ ?
        wrdApp.Visible = True
        Set wrdDoc = wrdApp.Documents.Open(doc(i))
        With wrdDoc
          Set wrdPic = .Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
          wrdPic.ScaleHeight = 50
          wrdPic.ScaleWidth = 50
          ActiveDocument.Save
        End With
        wrdDoc.Close
        Set wrdDoc = Nothing
        wrdApp.Quit
        Set wrdApp = Nothing
        Label1.Caption = "完成"
         '   Selection.InlineShapes(1).Height = 76.55
       '   Selection.InlineShapes(1).Width = 62.35
        '   Selection.Cut
        '  Selection.MoveDown Unit:=wdLine, Count:=2
       '   Selection.PasteAndFormat (wdPasteDefault)
       '  ActiveDocument.Save
'         ActiveDocument.Close
    End If
Next
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,通过Matlab代码实现了控制算法的仿真验证。该方法融合强化学习的在线自适应能力与传统PID控制的稳定性优势,利用QLearning算法动态优化PID控制器的比例、积分、微分参数,以应对水下复杂流体环境、模型不确定性及外部干扰等挑战,从而提升AUV轨迹跟踪的精度、鲁棒性与动态响应性能。文中系统阐述了AUV的六自由度非线性动力学建模过程、QLearning算法的状态空间与动作空间设计、奖励函数构造及训练机制,并详细说明了PID参数自整定的闭环控制架构。仿真结果表明,相较于传统固定参数PID控制器,该智能控制策略在多种工况下均展现出更优的控制效果,有效抑制了超调,加快了响应速度,并增强了抗干扰能力。; 适合人群:具备自动控制理论、强化学习基础及Matlab/Simulink仿真能力,从事水下机器人、智能控制、海洋工程、自动化等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于AUV、UUV等无人水下平台的高精度自主导航与运动控制;②为解决非线性、强耦合、时变系统的控制器参数自适应整定问题提供智能化解决方案;③作为强化学习与经典控制理论深度融合的技术范例,推动智能控制算法在海洋装备中的工程化应用。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点剖析QLearning的状态-动作-奖励机制设计、PID参数更新逻辑及仿真对比实验结果,有条件者可在更复杂的动力学模型或实际硬件平台上进一步验证与优化算法性能。

5,174

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧