我有一个从Excel生成文档的代码。一方面,我有一个需要填充标记的文档,以生成与Excel中的行一样多的文档。另一方面,我有一个Excel,它在一行中有这个标记,并在Excel的每一行中填写Word文档中要填写的信息。
代码在只有文本和标签的普通文档中工作正常,但是当文档包含填充有文本的表时,它就不工作了...
这些是Excel和文档的一些图像...
带标签的Excel
普通文件
带表格的文件
这是代码:
Sub generate_documents()
intAnswer = MsgBox("Se dispone a generar los escritos. Antes de continuar confirme que los datos incluidos en la pestaña DATOS son correctos." & Chr(10) & Chr(10) & "¿Está seguro de continuar?", vbYesNo, "ATENCIÓN")
If (intAnswer <> 6) Then Exit Sub
Application.Cursor = xlWait
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(ActiveWorkbook.Path)
strWrittensPath = ActiveWorkbook.Path & "\ESCRITOS (" & Format(Now, "dd-mm-yyyy hhnnss") & ")"
fso.CreateFolder (strWrittensPath)
Dim wdApp As Object
Set wdApp = Nothing
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
intLastRow = Worksheets("DATOS").Range("A" & Rows.Count).End(xlUp).Row
For Each objFile In objFolder.Files
If objFile.Type = "Microsoft Word Document" And Left(objFile.Name, 1) <> "~" Then
For i = 2 To intLastRow
strData = " "
intColumn = 1
wdApp.Documents.Open (objFile.Path)
wdApp.ActiveDocument.SaveAs (strWrittensPath & "\" & Worksheets("DATOS").Cells(i, intColumn).Value)
Do While strData <> ""
intColumn = intColumn + 1
strData = Worksheets("DATOS").Cells(1, intColumn).Value
strReplace = Worksheets("DATOS").Cells(i, intColumn).Value
strReplace = Replace(strReplace, Chr(10), vbCr)
If strData <> "" And strReplace <> "" Then
If InStr(wdApp.ActiveDocument.Content, strData) = 0 Then
intAnswer = MsgBox("No se ha encontrado la etiqueta " & strData & " en el archivo WORD." & Chr(10) & Chr(10) & "¿Desea continuar igualmente?", vbYesNo, "ATENCIÓN")
If (intAnswer = 7) Then
wdApp.ActiveDocument.Save
wdApp.ActiveDocument.Close
wdApp.Quit
Set wdApp = Nothing
fso.DeleteFolder (strWrittensPath)
Application.Cursor = xlDefault
Exit Sub
End If
Else
wdApp.ActiveDocument.Content.Find.Execute _
FindText:=strData, ReplaceWith:=strReplace, Replace:=2, Forward:=True, MatchWholeWord:=True
End If
End If
Loop
wdApp.ActiveDocument.Save
wdApp.ActiveDocument.Close
Next i
End If
Next objFile
wdApp.Quit
Set wdApp = Nothing
Application.CutCopyMode = False
Application.Cursor = xlDefault
Application.ScreenUpdating = True
intAnswer = MsgBox("Los documentos se han generado con exito." & Chr(10) & Chr(10) & "¿Desea abrir la carpeta que contiene los documentos?", vbYesNo, "Información")
If (intAnswer = 6) Then Shell "explorer.exe" & " " & strWrittensPath, vbNormalFocus
End Sub
它工作得很好,问题是我试图写一个扩展名为. doc的文档,而不是. docx,现在有了. docx,就没有问题了。
我已经很多年没有使用VB了,所以如果这是显而易见的,请原谅我。我正在尝试编写一个word vba宏,以便在模板中使用,该模板将显示一个userform,然后导入fileA的内容。docx,fileB。docx或fileC。docx取决于用户表单。(之后我将使用书签填写一些表单数据,我不知道这是否相关)。文件A、B和C将包含一些基本格式(如列表)的文本,但没有什么特别之处。 我在网上看到的解决方案可
如何将一个文本文件复制到另一个文本文件中?我试过这个: 这只是在中留下以下值:。 我做错了什么?
我的s3存储桶中有很多文件,所以是否有任何aws cli命令可用于在s3中查找带有前缀名的最新文件?如何将该文件从s3复制到本地文件夹?我可以使用Boto3或python库来实现这一点吗?
问题内容: 我在将包含该文件夹中文件的文件夹复制到另一个文件夹时遇到一些问题。Command 不会复制文件夹中的文件。 问题答案: 您正在寻找的选项是。 如果不存在,将创建它。 意味着。您也可以使用,因为它不区分大小写。 请注意根据@ muni764的注释添加尾随的细微差别。
本文向大家介绍在MongoDB中找到带有ObjectID的文档?,包括了在MongoDB中找到带有ObjectID的文档?的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中查找带有Objectid的文档,请使用以下语法- 为了理解上述语法,让我们用文档创建一个集合。使用文档创建集合的查询如下- 在method的帮助下显示集合中的所有文档。查询如下- 以下是输出- 情况1-这是在Mong