使用VB在UFT中保存为word文档的问题

问题描述 投票:-1回答:2

创建了一个函数来保存以前在另一个函数中创建和修改的word文档,但它发送了一个错误:这不是一个有效的文件名。这是我的代码:

Set obj_Word = CreateObject("Word.Application")
obj_Word.Visible = True
Set doc = obj_Word.Documents.Open("C:\Evidencias3.docx")
NombreDocumento = DataTable.Value("Preguntas","Global")

Sub SaveEvidences()
obj_Word.Visible = True
    doc.SaveAs("C:\Evidencias_"& NombreDocumento &".docx")
    obj_Word.Quit
    Set obj_Word = Nothing
End Sub

我感谢任何帮助或建议

vb6 qtp hp-uft
2个回答
0
投票

您可以在保存之前尝试清除文件名:

Public Function CleanFileName(ByVal sIn As String) As String
    Dim sOut As String, sIllegalChars As String
    sIllegalChars = "\/:*|?<>" + Chr(34)
    sOut = sIn
    For q = 1 To Len(sIllegalChars)
        sOut = Replace(sOut, Mid(sIllegalChars, q, 1), "_")
    Next
    CleanFileName = sOut
End Function

用法:

doc.SaveAs(CleanFileName("C:\Evidencias_"& NombreDocumento &".docx"))

参考:MSDN - Naming Files, Paths, and Namespaces


0
投票

也许问题在于:

NombreDocumento = DataTable.Value("Preguntas","Global")

不熟悉代码,是否可能返回null值?如果是这样,您可以尝试向其追加一个空字符串:

NombreDocumento = DataTable.Value("Preguntas","Global") & ""

无论哪种方式,我都会调试代码并查看构造的文件名实际上是什么。也许那时它会变得明显。

© www.soinside.com 2019 - 2024. All rights reserved.