从Excel VBA(redux)中删除Word中的水印Word与;自学资料

从Excel VBA(redux)中删除Word中的水印Word与;自学资料,excel,ms-word,watermark,vba,Excel,Ms Word,Watermark,Vba,[最近还有一个标题类似的问题尚未得到令人满意的回答,也没有给我任何见解:-(] 这是我第一次尝试将Word automation与Excel VBA集成,因此我从Word VBA中的宏记录开始寻找线索。不幸的是,当我尝试将其转换为Excel时,即使考虑到必须使用Excel localwrdDoc来限定引用,Word VBA中的代码也无法实现来自Excel VBA的rk。非常令人沮丧 以下是我开始使用的Word中记录的代码片段: [录制后手动编辑形状名称,以匹配水印图像的指定名称] 下面是Exce

[最近还有一个标题类似的问题尚未得到令人满意的回答,也没有给我任何见解:-(]

这是我第一次尝试将Word automation与Excel VBA集成,因此我从Word VBA中的宏记录开始寻找线索。不幸的是,当我尝试将其转换为Excel时,即使考虑到必须使用Excel localwrdDoc来限定引用,Word VBA中的代码也无法实现来自Excel VBA的rk。非常令人沮丧

以下是我开始使用的Word中记录的代码片段: [录制后手动编辑形状名称,以匹配水印图像的指定名称]

下面是Excel中的代码片段,我从中派生: [预定义的sWatermark字符串以匹配图片名称]

结果:每次尝试选择水印时(With块中的第3行),VBA都会阻塞

我已经尝试了带或不带.prefix的问题行[即wrdDoc.Selection和just Selection(如原始单词macro)]

在验证该范围内只有1项后,我尝试以.HeaderFooter.shapes(1)的形式访问水印。同样,在Word VBA中,这似乎非常令人满意,但在Excel VBA中却从未如此


为什么?!

尽可能避免使用该选项,因为它在宏执行期间可能会更改。例如:

wrdDoc.StoryRanges(wdPrimaryHeaderStory).ShapeRange(1).Delete

.Selection
应该是
.Application.Selection
我知道一般情况下应该尽量避免选择,尽管我过去发现VBA可能对此非常不宽容。例如,即使在这里,我也试图省去.Sections(1).Range.select并融合了前两行,但也失败得很惨。此外,您的警告似乎并没有回答这个问题,即为什么VBA代码在Word中工作,而等效代码在Excel中不工作。@Alister
Selection
指的是
Application.Selection
,但在
wrdDoc.Sel的第二个代码中节
中没有
文档。选择
属性如果您可以将Microsoft Word和
Dim wrdDoc的引用添加为Word.Document
,则在
wrdDoc.Selection
行上应该会出现编译错误
With wrdDoc
    .Sections(1).Range.Select
    .ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    .Selection.HeaderFooter.Shapes(sWatermark).Select
    .Selection.Delete
End With
wrdDoc.StoryRanges(wdPrimaryHeaderStory).ShapeRange(1).Delete