我已经得到了纠正大约一百个左右代码测试报告的工作,这些报告由一位有更多进口工作要做的高级程序员错误地填写。
对我来说不幸的是,所有文件都是ms-word文件。但幸运的是,格式化是完全相同的,并且错误都是在同一个表中的相同单元格中进行的。
在过去,我编写了一个bash来编辑,将单引号更改为多个xml文件上的双引号。但那是一台linux机器。这次我只有一台窗户机。
任何提示从哪里开始?
答案 0 :(得分:0)
答案是使用VBA。我建了两个子程序。
第一个subRoutine遍历目录和 打开它找到的每个* .doc文件。然后在它调用的打开文档文件上 第二个子例程。在第二个subRoutine完成文档后 保存然后关闭。
Sub DoVBRoutineNow()
Dim file
Dim path As String
path = "C:\Documents and Settings\userName\My Documents\myWorkFolder\"
file = Dir(path & "*.doc")
Do While file <> ""
Documents.Open FileName:=path & file
Call editCellsTableRow2
ActiveDocument.Save
ActiveDocument.Close
file = Dir()
Loop
End Sub
~~~~~~
第二个子例程仅在所有文档具有相同格式时才有效。 例如:文档中唯一表的第二行包含编号为6,7,8的单元格。这些包含“dd / MM / yyyy”,“姓氏”,“名字” 这些单元格需要更改为“yyyy / MM / dd”,“Surname”,“Given Name”
Sub editCellsTableRow2()
Application.ScreenUpdating = False
Dim Tbl As Table, cel As Cell, i As Long, n As Long
With ActiveDocument
For Each Tbl In .Tables
Tbl.Rows(2).Alignment = xlCenter
For Each cel In Tbl.Rows(2).Cells
If cel.ColumnIndex = 6 Then
cel.Range.Text = vbCrLf + "yyyy/MM/dd"
End If
If cel.ColumnIndex = 7 Then
cel.Range.Text = vbCrLf + "Surname"
End If
If cel.ColumnIndex = 8 Then
cel.Range.Text = vbCrLf + "Given Name"
End If
Next cel
Next Tbl
End With
Set cel = Nothing: Set Tbl = Nothing
Application.ScreenUpdating = True
End Sub