การตั้งค่าเริ่มต้นสำหรับรายการตรวจสอบแบบเรียงซ้อนแบบไดนามิกใน Excel 2010


11

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

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

สมมติว่าฉันมี List1, List2, List3 และ List4 ค่าของแต่ละรายการขึ้นอยู่กับการเลือกในรายการก่อนหน้า เมื่อฉันเริ่มต้นสเปรดชีตฉันต้องการให้รายการทั้งหมดเป็นค่าเริ่มต้นเป็น "ALL" เมื่อผู้ใช้เลือกค่าใน List1, List2 จะอัปเดตด้วยชุดตัวเลือกที่ถูกต้อง ฉันต้องการเริ่มต้น List2 เป็นหนึ่งในตัวเลือกเหล่านั้น อย่างไรก็ตามในขณะที่ฉันสามารถรับ List2 เพื่อเติมด้วยชุดตัวเลือกการเลือกที่ถูกต้องฉันไม่สามารถรับค่าเริ่มต้นที่ต้องการได้

หากผู้ใช้ทำการเลือกใน List1, List2 และ List3 จากนั้นกลับไปและเปลี่ยนแปลง List1 ฉันต้องการ List2-List4 เป็นค่าเริ่มต้นกลับเป็น "ALL"

ฉันจะทำสิ่งนี้ได้อย่างไร


3
นี่เป็นงานสำหรับทริกเกอร์เหตุการณ์ VBA worksheet_change ตอนนี้ฉันยังไม่มีเวลาให้รายละเอียด (หลังจากนั้นฉันจะถ้าคุณยังต้องการความช่วยเหลือ) แต่นั่นคือสิ่งที่คุณควรนำการวิจัยของคุณ
Excellll

คุณอาจแก้ไขปัญหานี้ได้ในตอนนี้หรือยอมแพ้ ฉันเห็นด้วยกับ Excellll ว่าเหตุการณ์การเปลี่ยนแผ่นงานอาจจะง่ายที่สุด =IF(A1="List1",C1:C5,D1:D4)แต่ด้วยรายการตัวเลือกสำหรับการตรวจสอบข้อมูลแหล่งที่มาที่สามารถแสดงออกเช่น ฉันได้ทดสอบสิ่งนี้ด้วยค่าของเซลล์ A1 ที่เลือกจากรายการและทำงานได้ในแบบที่คุณต้องการ
Tony Dallimore

คุณยังประสบปัญหานี้อยู่หรือไม่
Tamara Wijsman

FYI ซึ่งเป็นวิธีที่ไม่ใช้ VBA ที่ฉันใช้สำหรับปัญหานี้คือการใช้การจัดรูปแบบตามเงื่อนไขกับเซลล์ที่ตามมาที่ตรวจสอบว่าค่าปัจจุบันที่เก็บไว้ตรงกับค่าในช่วงอ้างอิง INDIRECT () ปัจจุบัน หากไม่ใช่เซลล์จะเปลี่ยนเป็นสีแดงหรือค่าจะหายไป (การจับคู่แบบอักษร / พื้นหลัง) เพื่อให้ผู้ใช้รู้ค่าสำหรับเซลล์นั้นจะต้องได้รับการปรับปรุง / เลือกใหม่
Jerry Beaucaire

เพื่อแสดงให้เห็นถึงทั้งวิธี VBA และวิธี CF ที่ฉันกล่าวถึงข้างต้นมีไฟล์ตัวอย่างที่นี่ DependentLists3.xls
Jerry Beaucaire

คำตอบ:


1

เมธอด nonVBA ที่ฉันใช้สำหรับปัญหานี้คือการใช้การจัดรูปแบบตามเงื่อนไขกับเซลล์ที่ตามมาที่ตรวจสอบว่าค่าปัจจุบันที่เก็บไว้ตรงกับค่าในช่วงอ้างอิง INDIRECT () ปัจจุบัน หากไม่ใช่เซลล์จะเปลี่ยนเป็นสีแดงหรือค่าจะหายไป (การจับคู่แบบอักษร / พื้นหลัง) เพื่อให้ผู้ใช้รู้ค่าสำหรับเซลล์นั้นจะต้องได้รับการปรับปรุง / เลือกใหม่

เพื่อแสดงนี้ (และวิธี VBA กล่าวถึงโดยคนอื่นบน) มีไฟล์ตัวอย่างที่นี่ ไฟล์ที่คุณต้องการคือDependentLists3.xls

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