| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 816 人关注过本帖
标题:新手求助:Excel VBA 导出 Word 出错
只看楼主 加入收藏
wjs9
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-5-19
收藏
 问题点数:0 回复次数:1 
新手求助:Excel VBA 导出 Word 出错
提示如图。
出错代码:ChangeFileOpenDirectory
系统:Win7旗舰版64位,Office2016 64位。

网上找的原代码:
Sub XM()
    ' 打开 調査報告-1.xlsx 文件
    Dim MyFile As Object
    Set MyFile = CreateObject("Scripting.FileSystemObject")
   
    Dim FilePath As String
    FilePath = ActiveDocument.Path & "\調査報告-1.xlsx"
   
    ' 如果不存在 調査報告-1.xlsx 文件
    If Not MyFile.FileExists(FilePath) = False Then
        ' 退出
        MsgBox "无法找到文件: 調査報告-1.xlsx", Title:="Error"
        Exit Sub
    End If
   
    ' 读取 調査報告-1.xlsx 文件
    Dim ExcelObject As Object
    Set ExcelObject = GetObject(FilePath)
    Set Table = ExcelObject.Sheets(1).UsedRange()

' 循环
    For i = 2 To Table.Rows.Count
        ' 清空变量
        For Each Var In ActiveDocument.Variables
            Var.Delete
        Next
        
        ' 添加一个名字为 住所 的变量,它的值是 調査報告-1.xlsx 中第 i 行第 5 列的内容
        ActiveDocument.Variables.Add Name:="住所", Value:=Table.Cells(i, 5).Text
        
        ' 更新 Word 文档
        ActiveDocument.Fields.Update
        
        ' 设置保存目录
        ChangeFileOpenDirectory ActiveDocument.Path
        ChangeFileOpenDirectory "G:\E-VBA\Documents"
        Documents.Open Filename:="住所.doc"

        ' 保存文件,文件名为:住所.docx
        ActiveDocument.SaveAs2 Filename:=Table.Cells(i, 5).Text & ".docx", FileFormat:= _
            wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
            :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
            :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False, CompatibilityMode:=15
    Next
End Sub
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: Word Table 文件 False 出错 
2022-05-25 21:06
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:0 
这段 代码你是粘贴在excel中还是粘贴在word中 运行的 ?
其次 ,If not MyFile.FileExists(FilePath) = False Then 这句你自己琢磨琢磨,这个not 是不是多余?
最后 ,在 Next 这句前,加一句  ActiveDocument.Close 更合理.
   

[此贴子已经被作者于2022-6-10 14:21编辑过]

2022-06-10 14:05
快速回复:新手求助:Excel VBA 导出 Word 出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025434 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved