การเปลี่ยนชื่อบุ๊คมาร์คใน Word 2010


13

ฉันมักจะใช้บุ๊กมาร์กใน Word เพื่อสร้างเอกสารทางเทคนิคพร้อมลิงก์ภายในไปยังการอ้างอิงและข้อมูลที่ใช้กันทั่วไปซึ่งต้องสอดคล้องกันตลอดทั้งเอกสาร คุณสามารถสร้างได้โดยเลือกข้อความจากนั้นไปที่เมนูInsert-> Links-> Bookmarkและกำหนดชื่อจากนั้นไปที่Insert-> Links-> Citationsแล้วเลือกคั่นหน้าเพื่อแทรก จากนั้นจะแทรกข้อความของบุ๊คมาร์คนั้นที่อื่นในเอกสาร

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

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

ตอนนี้สมมติว่าฉันมีบุ๊กมาร์กที่ฉันเพิ่งตั้งชื่อคร่าวๆเพื่อให้เข้าที่:
ป้อนคำอธิบายรูปภาพที่นี่

ไม่มีคลิกขวาเพื่อเปลี่ยนชื่อบุ๊คมาร์คและฉันไม่สามารถหาคุณสมบัติเอกสารใด ๆ ที่จะให้ฉันแก้ไข

ฉันสามารถแทรกบุ๊คมาร์คใหม่ได้โดยเลือกข้อความเดียวกันจากนั้นลบอันเก่าออก แต่คุณจะได้รับสิ่งนี้:
ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นคุณต้องคลิกขวาที่ฟิลด์และนำกลับมาที่บุ๊คมาร์ค (ตอนนี้เปลี่ยนชื่อได้อย่างมีประสิทธิภาพ)

ไม่สามารถใช้งานได้อย่างสมบูรณ์โดยเฉพาะในเอกสารขนาดใหญ่ที่ใช้คั่นหน้านี้หลายครั้ง

ฉันได้ Googled ไปรอบ ๆ และเห็นสคริปต์ VBA หลายตัวบนเว็บเช่นในคำถามนี้แต่เนื่องจากพวกเขาสร้าง boomark ใหม่และลบเก่าพวกเขาสร้างปัญหาเดียวกันตามข้างบนและน้อยกว่าอุดมคติ

มีวิธีที่ง่ายกว่าหรือมีประสิทธิภาพมากกว่าในการเปลี่ยนชื่อที่คั่นหน้าในเอกสาร Word หรือไม่? หรือฉันอาจใช้ Wrong Tool ™สำหรับงานนี้?


คุณหมายถึง Word 2013 แทนที่จะเป็น 2010 ใช่ไหม
กรีก - ข้อเสนอ 51 ของพื้นที่

@LePressentiment สำเนา Word ของฉันคือ 2010 แต่ฉันไม่เห็นว่าทำไมคำตอบด้านล่างนี้ไม่สามารถใช้ได้กับ 2013 เว้นแต่ว่าพวกเขาจะปรับปรุงคุณลักษณะการคั่นหน้าระหว่างรุ่นอย่างมีนัยสำคัญ ฉันจะแปลกใจจริงๆถ้าพวกเขามี
Mokubai

@LePressentiment ดูคำตอบของฉันที่ได้รับการปรับปรุงโดย Mokubai
DavidPostill

คำตอบ:


7

มีวิธีที่ง่ายกว่าหรือมีประสิทธิภาพมากกว่าในการเปลี่ยนชื่อที่คั่นหน้าในเอกสาร Word หรือไม่?

ไม่มีฟังก์ชั่นการเปลี่ยนชื่อในตัวเป็น Word มีสองตัวเลือกในการแก้ไขปัญหาการขาดนี้:

  1. ใช้ Add-in

  2. ใช้ VBA


โซลูชันการเพิ่มเข้า

ใช้เครื่องมือบุ๊กมาร์กเพิ่มไว้

มันมีส่วนต่อประสานกับผู้ใช้ที่เป็นมิตรสำหรับการทำทุกอย่างกล่องไดอะล็อกบุ๊กมาร์กแบบมาตรฐานจะมีประโยชน์มากกว่านั้น

เครื่องมือบุ๊กมาร์กได้รับการพัฒนาสำหรับ Word 2003 ซึ่งทำงานได้อย่างสมบูรณ์กับ Word 2007/2010

...

ด้วยส่วน "เพิ่ม / เปลี่ยนชื่อคั่นหน้า" การเพิ่มที่คั่นหน้าเป็นเรื่องง่าย

  • เช่นเดียวกับในกล่องโต้ตอบมาตรฐานคุณเพียงแค่เลือกข้อความพิมพ์ชื่อในฟิลด์และคลิก "เพิ่ม"
  • ซึ่งแตกต่างจากไดอะล็อกมาตรฐานเครื่องมือคั่นหน้าจะ จำกัด รายการสำคัญให้กับอักขระชื่อบุ๊กมาร์กที่ถูกต้องและเตือนคุณหากคุณพยายามสร้างชื่อบุ๊กมาร์กซ้ำ
  • คุณสามารถใช้ส่วนนี้เพื่อเปลี่ยนชื่อบุ๊คมาร์คที่มีอยู่

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

เพิ่มเครื่องมือคั่นหน้าแหล่งที่มา


โซลูชัน VBA

ไม่มีฟังก์ชั่นการเปลี่ยนชื่อ คุณต้องลบชื่อเก่าและทำเครื่องหมายช่วงด้วยชื่อบุ๊กมาร์กใหม่ นี่คือตัวอย่างโค้ด VBA:

Sub ReNameBookMark()
    Dim doc As Word.Document
    Dim rng As Word.Range
    Dim bmk As Word.Bookmark
    Dim inpBookmark, repBookmark, fieldStr As String

    Set doc = Word.ActiveDocument

    inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
    repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")

    Set rng = doc.Bookmarks(inpBookmark).Range
    Set bmk = doc.Bookmarks(inpBookmark)
    bmk.Delete
    rng.Bookmarks.Add (repBookmark)

    If doc.Fields.Count >= 1 Then
        For i = 1 To doc.Fields.Count
            fieldStr = doc.Fields(i).Code.Text
            If Left(fieldStr, 4) = " REF" Then
                doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
                doc.Fields(i).Update
            End If

            'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
        Next i
    End If
End Sub

แหล่งที่มาเปลี่ยน "ชื่อ" ของบุ๊กมาร์กไม่ใช่ข้อความของมันด้วยการวนซ้ำเพิ่มเติมเพื่อเรียกใช้ผ่านเขตข้อมูลในเอกสารเพื่อเปลี่ยนแปลงสิ่งที่อาจอ้างอิงถึงบุ๊กมาร์กที่ถูกเปลี่ยนชื่อ

ควรใช้ความระมัดระวังด้วยสคริปต์นี้ ตัวอย่างเช่นการเปลี่ยนชื่อบุ๊กมาร์กที่มีชื่อว่า "REF" (หรือตัวแปรตัวพิมพ์เล็กหรือใหญ่) จะทำลายการอ้างอิงทั้งหมดด้วยวิธีที่สนุกและไม่คาดคิด นี่เป็นตัวอย่างและการแก้ไขคร่าวๆเท่านั้น

หากคุณต้องการแบทช์เปลี่ยนชื่อบุ๊กมาร์กหลายรายการในคราวเดียวดูมีวิธีที่ง่ายกว่าหรือมีประสิทธิภาพมากกว่าในการเปลี่ยนชื่อบุ๊กมาร์กในเอกสาร Word หรือไม่? ซึ่งรวมถึงโค้ด VBA ตัวอย่าง


@Mokubai ดูเหมือนว่าคุณสามารถทำได้ด้วย Add-in (ดูคำตอบที่อัปเดตแล้ว)? น่าเสียดายที่ฉันยังไม่มีสำเนาของ Word ที่จะทดสอบด้วย ...
DavidPostill

ฉันจะให้การทดสอบเพิ่มเติมในตอนเช้าเมื่อฉันกลับไปที่พีซีของฉัน อาจเป็นเรื่องปกติสำหรับบ้าน แต่ที่ทำงานฉันไม่คิดว่าฉันจะสามารถใช้งานได้เพราะแผนกไอทีของเราอาจต้องระวังสิ่งต่างๆ ฉันจะลองทั้งสองวิธีและดูว่าฉันสามารถปรับปรุงสคริปต์ VBA ของคุณเพื่อทำการค้นหาและแทนที่ หากฉันไปที่อื่นและไม่เป็นไรกับคุณฉันต้องการแก้ไขมันเป็นคำตอบของคุณ
Mokubai

@LePressentiment ในกรณีที่เป็นความช่วยเหลือสำหรับสิ่งที่คุณต้องการฉันได้เพิ่มคุณสมบัติบางอย่างในสคริปต์ VBA ด้านบนเพื่อให้กล่องป้อนข้อมูลสำหรับชื่อปัจจุบันและใหม่และทำการค้นหาที่สกปรกและแทนที่ในช่องที่อ้างถึงบุ๊คมาร์คเหล่านั้น มันไม่สมบูรณ์แบบ แต่ก็ดีกว่าไม่มีอะไรและจะดีกว่าสิ่งที่ฉันต้องทำในที่ทำงาน
Mokubai

Add-in ของเครื่องมือคั่นหน้าจะอ้างอิงกับบุ๊กมาร์กหลังจากเปลี่ยนชื่อ (สำหรับฉันใน Word 365 บน Windows)
filups21

1

ฉันมีปัญหาเดียวกันนี้และพบปัญหา / แก้ไขปัญหานี้

สำหรับข้อความที่คุณต้องการอ้างอิงชื่อเรื่องในกรณีของฉันตั้งค่าชื่อคุณสมบัติเอกสารดังนี้:

Insert tab→การQuick Parts→การDocument Property→การTitle

จากนั้นเพิ่มกล่องที่แก้ไขได้สำหรับข้อความที่คุณสามารถพิมพ์ชื่อของคุณ

จากนั้นจะอ้างอิงได้คุณก็สามารถไปInsert tab→การQuick Parts→การField→การTitleหรือทำเช่นเดียวกับสิ่งที่ฉันไม่ได้ตั้งใจ - ฉันมีการอ้างอิงการตั้งค่าและเมื่อฉันปรับปรุงมันด้วยF9มันเพิ่มชื่อช่องว่ามันถูกอ้างอิง

นี่มันเจ๋งมากเพราะเมื่อคุณอัปเดตกล่องชื่อเรื่องการอ้างอิงทั้งหมดอัปเดตโดยอัตโนมัติโดยไม่ต้องกดF9!!! นี่เป็นสิ่งที่ดีเมื่อคุณมีการอ้างอิงในส่วนหัวเนื่องจากฟังก์ชั่นCtrl+ Aไม่จับสิ่งที่อยู่ในส่วนหัว / ส่วนท้ายและโดยปกติคุณจะต้องดับเบิลคลิกภายในส่วนหัว / ส่วนท้ายเพื่อเลือกและกดF9เพื่ออัปเดต

ดังนั้นแทนที่จะสร้างการอ้างอิงชื่อตามที่ระบุไว้ข้างต้นทำสิ่งนี้:

  • หลังจากตั้งค่ากล่องหัวเรื่องให้สร้างกล่องคั่นหน้าของชื่อเรื่อง:

    • เลือกกล่องชื่อ (ให้แน่ใจว่าคุณคลิกแท็บชื่อที่ด้านบนเพื่อเลือกกล่องทั้งหมด)
    • Insert→→ Bookmark(ชื่อพูดProject_title) →add
  • จากนั้นเพิ่มการอ้างอิงเช่นนี้:

    • Insert tab→การQuick Parts→การField→การRef(และเลือกProject_titleหรือสิ่งที่คุณเรียกมันว่า)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.