问题描述
我想将 Word 文档中的图片复制到 Excel 中的单元格中,但每次尝试粘贴图片时,我都会收到一个“\”。
有人可以帮我吗?
有没有简单的方法可以在 VBA 中进行这个操作?
我的代码如下:
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:\test.docx")
Dim r1 As Long
wrdApp.Selection.WholeStory
wrdApp.Selection.Find.ClearFormatting
With wrdApp.Selection.Find
.Text = "ABCD"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute
End With
r1 = wrdApp.Selection.Range.End
wrdApp.Selection.Find.Text = "BCDE"
If wrdApp.Selection.Find.Execute Then
wrdApp.Selection.Collapse wdCollapseStart
Else
wrdApp.Selection.WholeStory
wrdApp.Selection.Collapse wdCollapseEnd
End If
wrdDoc.Range(r1,wrdApp.Selection.Start).Select
With wrdApp.Selection
MySheet.Range("B3").Value = .Inlineshapes(1)
End With
解决方法
您的代码有几个问题。
-
变量
MySheet
没有声明,也没有指向任何东西。 因此,您的代码无法编译。 -
虽然您的问题提到使用复制和粘贴您的代码 不复制或粘贴任何内容。
-
单元格的
.Value
不能是图片。 -
在使用 VBA 时,无论是在 Excel、PowerPoint 还是 Word 中,最好 避免使用
Selection
对象,而是使用Range
。Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Set wrdApp = CreateObject("Word.Application") wrdApp.Visible = True Set wrdDoc = wrdApp.Documents.Open("C:\test.docx") Dim r1 As Word.Range Set r1 = ActiveDocument.Range With wrdDoc.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = "ABCD" .Format = False .Forward = True .Wrap = wdFindStop .MatchWildcards = False End With If .Find.Execute Then r1.Start = .End .Find.Text = "BCDE" If .Find.Execute Then r1.End = .Start End With r1.InlineShapes(1).Range.Copy ThisWorkbook.Sheets(1).Range("B3").PasteSpecial wrdDoc.Close False wrdApp.Quit