ตั้งค่า Excel ให้ค้นหาภายในเวิร์กบุ๊กทั้งหมดตามค่าเริ่มต้น


12

ใน Microsoft Excel เมื่อฉันค้นหาโดยใช้CTRL+ Fตามค่าเริ่มต้นจะค้นหาเฉพาะในแผ่นงานปัจจุบัน

ฉันจะตั้งค่าให้ค้นหาภายในเวิร์กบุคทั้งหมดตามค่าเริ่มต้นได้อย่างไร Office 2010ฉันมี เป็นไปได้ไหม เป็นไปได้ไหมที่จะตั้งค่านี้สำหรับเวิร์กบุ๊กหรือเวิร์กชีทที่เฉพาะเจาะจง ฉันโอเคกับการแก้ไขรีจิสทรีหากเป็นสิ่งที่ต้องใช้

หมายเหตุ:เกือบ 10 ปีต่อมาฉันยังคงต้องการทำเช่นนี้ แต่ตอนนี้สำหรับ Excel 2016/2019

คำตอบ:


3

คุณสามารถทำได้ด้วยแมโคร Workbook_Open ในโมดูล ThisWorkbook ดังนี้:

Private Sub Workbook_Open()

Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"

End Sub

นี่จะเป็นการตั้งค่าสำหรับเซสชันของคุณสำหรับเวิร์กบุ๊กที่คุณอยู่

ที่จะมีอยู่เสมอที่จะเริ่มต้นที่คุณจำเป็นต้องสร้างPersonal Macro Workbook


1
ฉันไม่ควรใช้แมโครสำหรับสิ่งนี้
Joel Coehoorn

2
@ Joel การตั้งค่าส่วนใหญ่น่าจะถูกเก็บไว้ในไฟล์. pip สำหรับ Excel ซึ่งหาง่าย แต่อยู่ในรูปแบบไบนารีและฉันไม่สามารถหาเครื่องมือแก้ไขเฉพาะได้ (นั่นเป็นโครงการที่ยอดเยี่ยม) คุณอาจได้รับ hex editor มาตรฐานและทำงานออกมา แต่มันจะเป็นโครงการ
Lance Roberts

2

ฉันรวมการแก้ไขดังนั้นมันจะทำงานถ้า Excel ของคุณเป็นภาษาสเปน (เหมือนของฉัน)

Private Sub Workbook_Open()

Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)

Application.CommandBars.FindControl(ID:=1849).Execute

Select Case lCountryCode
Case 34 'spanish
    SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
    SendKeys "%(t)%(h)W~{ESC}"
End Select


End Sub

0
  1. เลือกไอคอนค้นหา / เลือกใน Home Ribbon

  2. คลิกค้นหา

  3. คลิกที่กล่อง "ตัวเลือก" ที่ด้านล่างขวา

  4. ทางด้านซ้ายมีแถบเลื่อนที่อ่านว่า "ภายใน"

  5. เลือก "แผ่นงาน" หรือ "สมุดงาน"

ไซต์นี้อธิบายวิธีการเปลี่ยนค่าเริ่มต้น


1
สิ่งนี้ไม่ทำงานด้วยเหตุผลสองประการ ก่อนตัวเลือกนี้จะไม่ถูกบันทึกในแต่ละเอกสาร เปิดสเปรดชีตทำการเปลี่ยนแปลงบันทึกสเปรดชีตปิดExcelเปิดสเปรดชีตอีกครั้งและกลับมาเหมือนเดิม ประการที่สองแม้ว่ามันจะบันทึกด้วยเอกสารฉันต้องเปิดเอกสารจำนวนมากที่ไม่ได้สร้างบนเครื่องของฉันและดังนั้นจะมีการตั้งค่า (ผิด) จากเครื่องเดิมที่พวกเขาสร้างขึ้น
Joel Coehoorn

0

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

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub

0

ฉันมีปัญหาที่คล้ายกัน ฉันมีปุ่มในสมุดงาน หากคลิกปุ่มฉันต้องการ excel เพื่อเปิดกล่องโต้ตอบค้นหาด้วยตัวเลือก "ค้นหาภายในเวิร์กบุคทั้งหมด" ที่เลือกไว้แล้วแทนที่จะเป็น "เริ่มต้น" ภายในชีต "ไม่ว่าจะเกิดอะไรขึ้น

นอกจากนี้ฉันต้องการให้ปุ่มทำงานคำนึงถึงตัวเลือกที่ถูกซ่อนหรือแสดงและไม่ว่าใครจะทำการเปลี่ยนแปลงด้วยตนเอง นี่เป็นเรื่องยากเพราะ Excel ต่อค่าเริ่มต้นจะไม่แสดงตัวเลือกเมื่อเริ่มต้น แต่จดจำและแสดงให้เห็นอีกครั้งในครั้งต่อไปถ้ามีคนแสดงก่อนหน้านี้

เพื่อให้แน่ใจว่าการกดแป้นพิมพ์ทำงานได้เราจำเป็นต้องมีชุดการกดแป้นที่ตั้งค่าโดยไม่คำนึงถึงสถานะเริ่มต้น เอานิด ๆ หน่อย ๆ tinkering แต่ฉันพบที่ใช้งานได้

นี่คือรหัสของฉันสำหรับ Excel เวอร์ชันภาษาอังกฤษสำหรับภาษาอื่น ๆ ที่คุณต้องเปลี่ยนคีย์ตาม

 Sub Commanbutton_Click()

      Cells(1, 1).Select

       SendKeys "^f", True
       SendKeys "{TAB 15}"
       SendKeys " ", True
       SendKeys "%t%t", True
       SendKeys "{TAB 2}", True
       SendKeys "{DOWN}{DOWN}{ENTER}", True
       SendKeys "%t%t", True

  End Sub

คุณสามารถทดลองใช้ด้วยตนเอง:

กด CTRL + F สำหรับบทสนทนาการค้นหากด TAB 15 ครั้งเพื่อให้คุณลงจอดที่ "ตัวเลือก" หรือในรายการแบบเลื่อนลง "ค้นหาภายใน"

พื้นที่กดและทั้ง

1) ตัวเลือกจะปรากฏขึ้นหรือ 2) เมนูแบบเลื่อนลงจะเปิดใช้งานและไม่มีอะไรเกิดขึ้น

กด Alt + T สองครั้งเพื่อรีเซ็ตเคอร์เซอร์ไปที่กล่องค้นหา

กด TAB สองครั้งมันจะนำคุณไปสู่การค้นหาภายในดรอปดาวน์ไม่ว่าจะเกิดอะไรขึ้น (เพราะขั้นตอนก่อนหน้านี้ทำให้มั่นใจได้ว่าตัวเลือกนั้นปรากฏจริง!)

กดลูกศรลงสองครั้งเพื่อเลือก "สมุดงาน" และกดเพื่อเลือก

กด ALT + T สองครั้งเพื่อรีเซ็ตเคอร์เซอร์ไปที่ช่องค้นหาอินพุตอีกครั้ง

หวังว่านี่จะช่วยคนอื่นที่มีปัญหาคล้ายกัน Googling มากมายบอกแค่ว่าไม่สามารถเลือก "ค้นหาภายในเวิร์กบุคทั้งหมด" ด้วย VBA ล่วงหน้า แต่วิธีนี้ใช้ได้ผล!

เพื่อให้ทำงานกับภาษาต่าง ๆ คุณต้องตรวจสอบภาษาและใช้ CASE เพื่อสลับไปยังรูทีนที่เหมาะสมด้วยทางลัดที่เหมาะสม

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