ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] Excel下创建并操作Word时在selection的.HomeKey时出错

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-26 17:48 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在Excel中创建并操作word文档时出错,在下面的代码的水红色处。
请大侠帮我一看。


Private Sub CommandButton1_Click()
Dim Wrd As New Word.Application
Dim par As Paragraph
Set d = CreateObject("scripting.dictionary")
For j = 3 To 45
    If ActiveSheet.Cells(3, j) <> 0 Then
       For i = 4 To 485
           If ActiveSheet.Cells(i, j) = "×" Then sr = sr & ActiveSheet.Cells(i, 3).Value & Chr(13)
       Next
           d.Add ActiveSheet.Cells(2, j).Text, sr
    End If
    sr = ""
Next
k = d.keys
t = d.Items
ct = d.Count
For i = 1 To ct - 1
    sr1 = IIf(i <> 1, Chr(12), "")
    isr = isr & sr1 & k(i) & "  词语更错集" & Chr(13) & t(i)
Next
Set wd = Wrd.Documents.Add
With wd
        .Content.Text = isr
        .Content.Font.Name = "楷体"
        .Content.Font.Name = "Arial Narrow"
        
        '以下为对新文档的后期处理
        With .PageSetup '页面设置
             .TopMargin = MillimetersToPoints(15)
             .BottomMargin = MillimetersToPoints(15)
             .LeftMargin = MillimetersToPoints(16)
             .RightMargin = MillimetersToPoints(18)
        End With
        '预处理
        With .Content.Find
             .Execute "^13", , , , , , , , , "^p", 2
             .Execute "^11", , , , , , , , , "^p", 2
             .Parent.ListFormat.ConvertNumbersToText
        End With

        'Sub 删除空行()
        For Each par In ActiveDocument.Paragraphs
            If Asc(par.Range) = 13 Then par.Range.Delete
        Next

        With Selection
             .HomeKey 6 '此为出错的地方,不知道是什么原因,请大侠看看。
            Do
               .MoveEndUntil cset:=Chr(12), Count:=wdForward
               If Len(.Text) = 1 Then .EndKey 6, 1
               .MoveStart 4, 1
               With .Previous(4, 1)
                    With .Font
                         .Name = Choose(Int(Rnd * 6 + 1), "黑体", "华文隶书", "华文新魏", "方正苏新诗柳楷简体", "方正康体简体", "华文中宋", "方正康体简体")
                         .Size = 18
                         .Bold = True
                         .ColorIndex = Choose(Int(Rnd * 6 + 1), wdViolet, wdPink, wdGreen, wdDarkYellow, wdDarkBlue, wdBlack, wdBrightGreen)
                        '.Color = wdColorRed
                    End With
                    With .ParagraphFormat
                         .SpaceBefore = 24
                         .SpaceAfter = 24
                         .Alignment = wdAlignParagraphCenter
                         .Space15
                    End With
               End With
               ActiveDocument.Range(Start:=.Start, End:=.Start).InsertBreak Type:=wdSectionBreakContinuous
               .Start = .Start + 1
               If Not .End = ActiveDocument.Content.End Then ActiveDocument.Range(Start:=.End, End:=.End).InsertBreak Type:=wdSectionBreakContinuous
               With .PageSetup.TextColumns
                    .SetCount NumColumns:=4 '四栏
                    .EvenlySpaced = True '等宽
                    .Width = MillimetersToPoints(33) '栏宽
                    .Spacing = MillimetersToPoints(2.5) '栏间距
               End With
            
               .Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
               With ListGalleries(wdNumberGallery).ListTemplates(1).ListLevels(1)
                    .TrailingCharacter = wdTrailingNone
                    With .Font
                         .ColorIndex = 9
                         .Size = 6
                         .Bold = True
                         .Name = "方正姚体"
                    End With
               End With
            
               If .End = ActiveDocument.Content.End Then .HomeKey 6: Exit Sub
               .Next.Next.Next.Select
            Loop
    End With
    .SaveAs Filename:=ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & "[更错版]" & ".docx"
End With
End Sub附件如下:

错题整理.rar

167.29 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2018-12-26 21:46 | 显示全部楼层
将 .homekey 6 的 6 改为 Unit:=wdStory 试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-27 07:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2018-12-26 21:46
将 .homekey 6 的 6 改为 Unit:=wdStory 试试

还是不行,不过我已借助别的案例完成了此过程。
谢谢你的帮助。

TA的精华主题

TA的得分主题

发表于 2020-7-25 14:17 | 显示全部楼层
请较,excel里操作word homekey提示438错误,不识别方法或属性,如何解决的,多谢

TA的精华主题

TA的得分主题

发表于 2022-12-12 15:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主,请问是怎么做到的?借用了什么案例完成了。
我的问题描述:VBA代码写在word时,.HomeKey unit:=wdStory, Extend:=wdMove不报错。但是,由于实际应用中,我这里需要借助Excel调用word来完成整个代码的实现,这句话就出现了问题【因为我需要使用Excel中的个人工作簿的功能】。
我的分析:我个人觉得是wdstory和wdmove是wordVBA的语法样式,如果用Excel调用的话,就出现了语法上的问题。
所以具体是因为什么还不太清楚,所以能分享下您的经验吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 21:20 , Processed in 0.035013 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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