我有电影剧本。第一列是时间码,第二列是演讲者,第三列是对话。
我想循环整个脚本,但只对第三列(对话框)做一些操作。
我已经有一个宏来处理第三列的操作。我只需要它:
- 从第 1 行第 1 列开始
- 跳至第 1 行第 2 列
- 再次跳至第 1 行第 3 列(然后执行我预先构建的宏)
- 然后再次 Tab 带我回到 r2 c1
但是当它碰到一个空的表格单元格时,它必须停止。我的宏不断陷入无限循环,尽管对文档结尾进行了许多不同的检查,但 Tab 键仍以编程方式进行检查,因此继续创建新的单元格。所有解决方案都假设它是一个普通的非表格文档,并且代码如下:
Do Until ActiveDocument.Bookmarks("\Sel") = ActiveDocument.Bookmarks("\EndOfDoc")
'(Do something)
Loop
失败。
答案1
您可以以编程方式迭代表格的行和单元格,而无需逐一选中每个单元格:
Sub ProcessScriptTable()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
For Each oRow In oTbl.Rows
Set oCell = oRow.Cells(3)
'Do something with each cell
MsgBox oCell.Range.Text
Next
End Sub