ฉันมีปัญหาที่คล้ายกัน ฉันมีปุ่มในสมุดงาน หากคลิกปุ่มฉันต้องการ 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 เพื่อสลับไปยังรูทีนที่เหมาะสมด้วยทางลัดที่เหมาะสม