วิธีการใส่เขตข้อมูลที่มีหน้าหมายเลขสุดท้ายใน Ms Word?


0

ข้อความทางวิชาการเช่นเอกสาร, วิทยานิพนธ์และวิทยานิพนธ์บางครั้งใช้หมายเลขหน้าแตกต่างกันจากข้อความก่อนข้อความและข้อความโพสต์

จากนั้นฉันต้องสร้างการ์ดแคตตาล็อกพร้อมหมายเลขหน้าและข้อความที่เลือกปฏิบัติล่วงหน้า สำหรับเรื่องนี้ฉันคิดว่าฉันสามารถใส่เขตข้อมูลด้วยหน้าสุดท้ายของส่วนก่อนข้อความและหมายเลขหน้าสุดท้ายของเอกสาร (ไม่ใช่{NUMPAGES}เพราะสิ่งนี้ให้ฉันจำนวนหน้าทั้งหมด)

นี่คือโครงสร้างของเอกสารเพื่อให้เข้าใจได้ดีขึ้นว่าปัญหาคืออะไร:

  1. การเตรียมหมายเลขข้อความล่วงหน้าจะเริ่มต้นที่หน้าสามด้วยหมายเลขโรมัน (iii) และสิ้นสุดที่ส่วนท้ายของรายการตัวเลขที่ (xvi) หน้าในการกำหนดตัวเลขที่แน่นอนนี้ยังเป็น 16
  2. หลังจากส่วนข้อความเริ่มต้นด้วยการกำหนดหมายเลขด้วย 1 (ในเลขอารบิก) แต่ในการกำหนดหมายเลขที่แน่นอนของเอกสารนี่คือหน้า 17 จากนั้นหมายเลขนี้จะลงท้ายด้วยหน้า 120 แต่ในการกำหนดหมายเลขที่หน้านั้นคือ 136

จากนั้นฉันต้องการฟิลด์ที่พิมพ์ XVI และ 120 ฉันสามารถทำได้:

{={NUMPAGES}-16}

แต่ถ้าข้อความล่วงหน้าเพิ่มหน้านั่นจะไม่ทำงาน

ฉันจะขอบคุณด้วยโซลูชั่นใน VBA ด้วย


คุณเขียนโค้ด VBA แล้วหรือยัง คุณใจดีกับ " accept solutions with VBA too"
Prasanna

คุณติดอยู่ที่ไหน คุณลองทำอะไร นี่ไม่ใช่บริการการเขียนสคริปต์
Xavierjazz

ขอโทษฉันพูดภาษาอังกฤษไม่ค่อยเก่ง ฉันไม่รู้ว่าจะใจดีหรือสุภาพ ฉันอยากจะบอกว่าฉันจะมีความสุขและรู้สึกซาบซึ้งมากเช่นกันถ้าวิธีแก้ปัญหาคือการแก้ไขหรือเขียน VBA ประจำ
Adolfo Correa

ไม่มีคน ขออภัยถ้าฉันแสดงตัวเองไม่ดี ฉันคิดว่ามีวิธีที่ง่ายในการแก้ไขฟิลด์การแก้ไขปัญหานี้ แน่นอนว่ามีคนบางคนสามารถแก้ไขการค้นคืนข้อมูลนี้ทางอินเทอร์เน็ตเกี่ยวกับ VBA ฉันสามารถทำได้ แต่ฉันคิดว่านั่นเป็นปัญหาที่ง่ายมากที่อาจมีวิธีแก้ปัญหาจากคำพูด ความตั้งใจของฉันที่ฉันขอโซลูชัน VBA คือถ้ามีคนรู้วิธีแก้ปัญหาตอบคำถามเพราะสำหรับฉันมันจะมีประโยชน์เช่นกัน
Adolfo Correa

คำตอบ:


0

ตามปกติในส่วนท้ายฉันจำได้ว่าไวยากรณ์คือ x ของ xx โดยที่ xx เป็นหน้าสุดท้าย

เมื่อคุณเปลี่ยนรูปแบบจากโรมันเป็นอารบิกที่ไหนสักแห่งที่คุณเพิ่ม ... เริ่มนับใหม่หมายเลขส่วน

นี่เป็นสคริปต์ตัวอย่างที่ต้องการตรวจสอบ

เมื่อเกิดข้อผิดพลาดต่อไป

Const wdPageBreak = 7 Const wdPageNumberStyleUppercaseRoman = 1

Set objWord = CreateObject ("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Add ()

ตั้งค่า objSection = objDoc.Sections (1) ตั้ง objSelection = objWord.Selection

ตั้งค่า objPageNumbers = objSection.Footers (1) .PageNumbers objPageNumbers.NumberStyle = 1 wdPageNumberStyleUppercaseRoman

objSelection.TypeText "นี่คือหน้า 1" objSelection.InsertBreak (wdPageBreak) objSelection.TypeText "นี่คือหน้า 2" objSelection.InsertBreak (wdPageBreak) objSelection.TypeText "นี่คือหน้า 3"


0

คุณสามารถทำได้ด้วยฟิลด์และคั่นหน้า

ก่อนอื่นสร้างบุ๊คมาร์คใหม่ที่ด้านขวาของเครื่องหมายย่อหน้าที่คุณมีการแบ่งส่วนของคุณในตอนท้ายของส่วนข้ออ้าง (ฉันตั้งชื่อมันเป็น bkPretextEnd)

จากนั้นที่ที่คุณต้องการให้การคำนวณหน้าเว็บที่ปรับของคุณแสดงแทนการเข้ารหัสแบบแข็ง 16 แทรกการอ้างอิงไปยังหมายเลขหน้าของบุ๊กมาร์ก (และเปลี่ยนรูปแบบฟิลด์เป็นภาษาอาหรับดังนั้นจึงไม่ "ล้มเหลว" เนื่องจากการกำหนดหมายเลขหน้า i ในส่วนนั้น)

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.