ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]嵌入型转为上下环绕型的问题,请守柔版主帮忙看看

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-24 14:46 | 显示全部楼层 |阅读模式
Sub pic2() Dim j As InlineShape For Each j In ActiveDocument.InlineShapes j.ConvertToShape.WrapFormat.Type = wdWrapSquare Next j End sub 运行时错误'-2147467259(80004005)': 方法'ConvertToShape'作用于'InlineShape'时失效 请问守柔版主,这是怎么回事啊? phPsw4MZ.rar (140.4 KB, 下载次数: 42)
[此贴子已经被作者于2006-3-30 15:50:37编辑过]

TA的精华主题

TA的得分主题

发表于 2006-3-25 06:28 | 显示全部楼层

我这儿运行正常,你的代码看上去没有问题啊。

另外,我模拟了这个错误,是AUTOMATION自动化错误,而非方法'ConvertToShape'作用于'InlineShape'时失效。

请上传你的带有代码和嵌入式图形的示例文档。

谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-30 15:56 | 显示全部楼层

文件已上传。

我又试了几次。

我每次都是打开该文件,不进行其它任何操作,直接运行宏,结果有时能用,有时就出问题,完全搞不懂到底是怎么回事。

TA的精华主题

TA的得分主题

发表于 2011-8-19 23:08 | 显示全部楼层
最近在研究嵌入型的此类问题,测试了一下,确实有这样的问题,希望有人能给与解答。
33.jpg

TA的精华主题

TA的得分主题

发表于 2015-4-5 10:51 | 显示全部楼层
最近我也遇到了同样的问题。
苦思不得答案。
因为这个错误并非所有电脑都会出现,比如守柔老大的就能正常运行。
至于说重新安装word,office来解决的说法,纯属扯淡;
因为vba环境运行其他的都没问题,肯定不是这里的原因。
怀疑是否是wordvba的bug

TA的精华主题

TA的得分主题

发表于 2015-4-7 09:13 | 显示全部楼层
  1. Sub pic()
  2. Dim j As InlineShape, aShape As Shape
  3. For Each j In ActiveDocument.InlineShapes
  4.     Set aShape = j.ConvertToShape
  5.     aShape.WrapFormat.Type = wdWrapSquare
  6. Next j
  7. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-7-3 15:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sgyzhzb 发表于 2011-8-19 23:08
最近在研究嵌入型的此类问题,测试了一下,确实有这样的问题,希望有人能给与解答。

挖个坟,最近我也遇到这个奇葩问题了,其实不是鼠标位置的关系,要被操作对象在当前屏幕中就不会出错,实在理解不了这是什么原因造成的,同样的附件在2010执行就没有任何问题。
猜测可能是OLE对象的问题,但完全不知道怎么解决啊。

TA的精华主题

TA的得分主题

发表于 2017-7-4 11:43 | 显示全部楼层
楼主,在你的宏之前加入如下代码,你看看你的宏能运行吗?
Selection.WholeStory
    With Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(0)
        .RightIndent = CentimetersToPoints(0)
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpaceSingle
        .Alignment = wdAlignParagraphLeft
        .WidowControl = False
        .KeepWithNext = False
        .KeepTogether = False
        .PageBreakBefore = False
        .NoLineNumber = False
        .Hyphenation = True
        .FirstLineIndent = CentimetersToPoints(0)
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
        .AutoAdjustRightIndent = True
        .DisableLineHeightGrid = False
        .FarEastLineBreakControl = True
        .WordWrap = True
        .HangingPunctuation = True
        .HalfWidthPunctuationOnTopOfLine = False
        .AddSpaceBetweenFarEastAndAlpha = True
        .AddSpaceBetweenFarEastAndDigit = True
        .BaseLineAlignment = wdBaselineAlignAuto
    End With

TA的精华主题

TA的得分主题

发表于 2017-7-4 11:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你的代码我下了,运行不能通过,我设置了一下段落,可以通过了。
怪就怪在:再次运行没经任何改动的、你的原文件,也可以通过了。竟然可以通过了!!

TA的精华主题

TA的得分主题

发表于 2017-7-4 17:16 | 显示全部楼层
不求甚解,原因还是没有查明,但找到了解决办法:
1、ConvertToInlineShape 不能用for each循环操作,可能会丢失个别对象的操作,可以自己写个do loop 或 for 循环,注意要用 ActiveDocument.Shapes(1).ConvertToInlineShape
2、ConvertToShape 前要先select,否则 80004005 错误
        Dim oInline As InlineShape
        Set oInline = ActiveDocument.InlineShapes(1)
        oInline.Select
        oInline.ConvertToShape.WrapFormat.Type = wdWrapTopBottom

感觉这两个堪称word神坑,只坑2007及低版本,好像2010开始就没有这样的问题。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 21:45 , Processed in 0.025629 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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