目前这个章节统计字数的宏只能统计第[0-9]章的内容,有没有能够计算10以上章节的字数
目前试用了一个宏,可以统计章节字数,但是没有办法统计第10章以上的章节
试了一个方法就是把 "第[0-9]@章*" 改成 "第[0-9]{1,}章"
也没有用
function 一键统计章节字数(){
// 获取当前文档、光标选区
let doc = Application.ActiveDocument;
let sel = Application.Selection;
let startRng = sel.Range.Duplicate;
// 向上查找本章「第X章」标题
startRng.Find.ClearFormatting();
startRng.Find.Text = "第[0-9]@章*";
startRng.Find.MatchWildcards = true;
startRng.Find.Wrap = 1; // wdFindStop = 1
startRng.Find.Execute(false,false,false,false,false,false,true);
let chapStart = startRng.End;
// 向下查找下一章标题
let endRng = startRng.Duplicate;
endRng.Collapse(1); // wdCollapseEnd = 1
endRng.Find.ClearFormatting();
endRng.Find.Text = "第[0-9]@章*";
endRng.Find.MatchWildcards = true;
endRng.Find.Wrap = 1;
let findNext = endRng.Find.Execute();
// 兜底最后一章:无下一章则到文档末尾
let chapEnd = findNext ? endRng.Start : doc.Content.End;
// 提取整章文本
let chapRange = doc.Range(chapStart, chapEnd);
let txt = chapRange.Text;
// 计算两种字数口径
let 全字符 = txt.length;
let 纯文字 = txt.replace(/[\r\n\s]/g,"").length;
// 插入字数统计到标题下方(核心功能)
startRng.Collapse(1);
startRng.InsertAfter("\r\n章节字数统计:纯文字 " + 纯文字 + " 字,总字符 " + 全字符 + " 个\r\n");
// ✨ 兼容Mac WPS的弹窗写法(彻底解决undefined报错)
alert("✅ 统计完成!\n纯文字字数:" + 纯文字 + "\n总字符数:" + 全字符);
}
Lv.2潜力创作者
Lv.2潜力创作者