gpt4 book ai didi

VB.Net保存Word文档没有提示

转载 作者:行者123 更新时间:2023-12-02 07:03:31 24 4
gpt4 key购买 nike

预先感谢您能给我的任何帮助。

我正在尝试创建一个 VB 应用程序,该应用程序将打开现有的 Word 文档,进行一些更改并使用新文件名保存它。对文档进行更改很容易。保存文档似乎应该很容易,但有一个严重的问题。当我尝试保存文档时,“另存为”对话框打开。这应该是自动化的,所以不起作用。我尝试了很多变体:

Sub Main()
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim fileName As String
Dim templateName As String
Dim newFileName As String

'Start Word and open the document template.
oWord = CreateObject("Word.Application")
oWord.Visible = False
oWord.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone

templateName = "C:\tmp\template.dotx"
fileName = "C:\tmp\document.docx"
newFileName = "C:\tmp\new document.docx"

oDoc = oWord.Documents.Add(templateName)
'oDoc = oWord.Documents.Open(fileName) I have tried both using a template and opening a docx file.

<make changes>

oDoc.SaveAs2(newFileName)

oWord.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
oWord.Application.Quit()
oWord = Nothing
End Sub

它总是停在这里:

oDoc.SaveAs2

并打开另存为对话框。我需要找到一种方法来抑制“另存为”对话框或一种编辑Word文件的新方法。到目前为止,我发现的有关该问题的所有内容要么尚未解决/更新,要么与 Word 插件有关。我没有任何人们所说的导致问题的插件。为了安全起见,我禁用了所有单词插件。

如果有人解决了这个问题或者有不同的方法,我将不胜感激。我并没有坚持使用 VB 的想法。我走这条路的唯一原因是因为我认为它为我提供了编辑图表和格式化文档的最佳库。

谢谢,史蒂夫

最佳答案

我发现了问题。答案在于我在对文档进行更改时省略的部分中所做的事情。这些更改的一部分是更新文档中图表中的数据。我有类似的东西:

For Each oShape As Word.InlineShape In oDoc.InlineShapes
If oShape.HasChart And oShape.Range.Bookmarks.Item(1).Name = "ChartName" Then
Console.WriteLine("Updating ChartName")
Dim oWorkbook As Excel.Workbook
oWorkbook = oShape.Chart.ChartData.Workbook

oWorkbook.Worksheets(1).Range("B2").FormulaR1C1 = "9"
oWorkbook.Worksheets(1).Range("B3").FormulaR1C1 = "5"
oWorkbook.Worksheets(1).Range("B4").FormulaR1C1 = "1"

oWorkbook.Application.Quit()

End If
Next

我把它改为:

For Each oShape As Word.InlineShape In oDoc.InlineShapes
If oShape.HasChart And oShape.Range.Bookmarks.Item(1).Name = "ChartName" Then
Console.WriteLine("Updating ChartName")
Dim oWorkbook As Excel.Workbook
oWorkbook = oShape.Chart.ChartData.Workbook

oWorkbook.Worksheets(1).Range("B2").FormulaR1C1 = "9"
oWorkbook.Worksheets(1).Range("B3").FormulaR1C1 = "5"
oWorkbook.Worksheets(1).Range("B4").FormulaR1C1 = "1"

oShape.Chart.Refresh()
oWorkbook.Close(True)

End If
Next

现在可以了

关于VB.Net保存Word文档没有提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com