我已经制作了一个宏来更改文档的标题颜色,但是当它到达文档的末尾时 - 或者如果没有剩余的标题 - 我收到错误。
我想要的是在文档末尾的最后一个标题之后退出我的Do Loop。
这是我的代码:
function insertJobDesc (r) {
rowid=r;
var qty = document.getElementById('Qty' + r).value;
var desc = document.getElementById('Desc' + r).value;
desc = desc.replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, '"""').replace(/'/g, '"'"');
sendAsync("editDatabase.php?sql=UPDATE+jobdesc+SET+qty="+qty+",+description='"+desc+"',+rowID="+rowid+"+WHERE+id="+rowid+"+AND+jobID="+jobID);
}
答案 0 :(得分:0)
最佳地解决页眉/页脚与录制的宏无法很好地协作,因此我将向您展示与您提供的方法略有不同的方法。下面的代码直接使用底层的对象,并将格式应用于Range
而不是选择。这样更快,屏幕也不会“闪烁”。
当使用一组内容(例如Headers)时,通常使用For-Each循环来循环遍历该组。在这种情况下,标题特定于章节,因此您循环章节。这些方面的东西:
Dim doc as Word.Document
Dim sec as Word.Section
Set doc = ActiveDocument
For Each sec in doc.Sections
sec.Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range.Font.Color = 8527984
sec.Headers(wdHeaderFooterFirstPage).Range.Paragraphs(1).Range.Font.Color = 8527984
Next
此外,如果您查看Do循环的帮助主题,您会发现他们需要 test 来结束循环:Do While
或Do Until
或{ {1}}或Loop While
符合某个标准。我很确定您向我们展示的代码必须给您一个错误 - 在提问时您应该始终包含所有相关信息,包括任何错误消息......