C#의 2003 .DOT 문서에서 MailMerge를 수행하는 작은 라이브러리를 작성하는 중입니다. 그래서 같은 문서 본문의 모든 필드를 검색하고 대체 할 수 있어요 :편지 병합 Word 2003 헤더 필드 C#
foreach (Field mergeField in document.Fields)
{
if (mergeField.Type == WdFieldType.wdFieldMergeField)
{
string fieldText = mergeField.Code.Text;
string fieldName = Extensions.GetFieldName(fieldText);
if (values.ContainsKey(fieldName))
{
mergeField.Select();
application.Selection.TypeText(values[fieldName]);
}
}
}
그러나 이것은 내가 시도 머리글 또는 문서에서 바닥 글 필드 ..
를 검색하지 않습니다이 :
subscriptionDocument.Sections[1].Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Fields.Count;
필드가 물리적으로 존재하더라도 헤더 필드를 쿼리하지만 "0"이 반환됩니다.
머리말과 꼬리말 필드에서 원하는 효과를 얻을 수있는 방법이 있습니까?
입력 해 주셔서 감사합니다. 문서의 VBA 편집기에서이 스크립트를 시도했지만이 카운트는 0이 반환되었으므로 사용중인 정확한 문서의 아티팩트 일 수 있습니다. 문서를 다시 작성하고 그런 식으로 문제를 해결할 수 있는지 알아 봅니다. –
이 경우 항상 좋은 appproach입니다 (코드가 정확하면 문서가 범인이 될 수 있습니다). –