ข้อผิดพลาด 1004 เมื่อใช้รายการแบบเลื่อนลงการตรวจสอบความถูกต้องของข้อมูล

ฉันมีปัญหาเมื่อฉันใช้รายการแบบเลื่อนลงข้อมูลการตรวจสอบ ฉันได้ลงทะเบียนมาโครที่ควรแสดงรายการแบบเลื่อนลงหากตรงตามเงื่อนไข (รายการแบบเลื่อนลงจะขึ้นอยู่กับช่วงที่ตั้งชื่อ) เมื่อฉันพิมพ์สิ่งนี้ด้วยตนเองและเพิ่มการตรวจสอบข้อมูลในช่วงที่เลือก มันทำงานได้ดี แต่เมื่อฉันพยายามใช้มาโคร มันล้มเหลวและแสดงข้อผิดพลาด 1004 ที่บรรทัด .Add นอกจากนี้ยังเป็นไปไม่ได้ที่จะลงทะเบียนมาโครแล้วเรียกใช้หลังจากนั้น นี่คือรหัส:

Dim kolQ as Range
Set kolQ = (here is range in column Q)
With kolQ.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014;5;1);$M2>DATE(2015;4;30));list_a;list_b)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "No valid status!"
.InputMessage = ""
.ErrorMessage = "Chose option from drop-down list!"
.ShowInput = True
.ShowError = True
End With

ฉันค้นหาในฟอรัมและ Google เกี่ยวกับเรื่องนั้นแล้ว แต่คำตอบทั้งหมดที่ฉันพบใช้ไม่ได้ในกรณีนี้ ช่วงที่ตั้งชื่อ (list_a, list_b) มีอยู่ในแผ่นงานอื่นของสมุดงาน


person tomek198823    schedule 29.01.2018    source แหล่งที่มา


คำตอบ (3)


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

.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014;5;1);$M2>DATE(2015;4;30));list_a;list_b)"

To:

.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014,5,1),$M2>DATE(2015,4,30)),list_a,list_b)"
person CLR    schedule 29.01.2018

ลองเปลี่ยน ; เป็น , ใน Formula1 ของคุณ
และลองรวมฟังก์ชัน CHOOSE เข้าด้วยกัน สิ่งที่ต้องการ:

Formula1:="=CHOOSE(IF(AND($L2<DATE(2014,5,1),$M2>DATE(2015,4,30)),1,2),list_a,list_b)"
person L42    schedule 29.01.2018
comment
; ผลลัพธ์อาจมาจากการตั้งค่าระบบโปแลนด์ จุดดี. - person TomJohnRiddle; 29.01.2018
comment
@tomek198823 หากได้ผลสำหรับคุณ เราจะกล่าวขอบคุณใน StackOverflow โดย การยอมรับคำตอบ หรือเวอร์ชันที่มีรายละเอียดเพิ่มเติม ที่นี่ - person L42; 02.02.2018

ใช้ Range.Activate และ With ActiveCell.Validation ตามที่แนะนำที่นี่ใน #3

https://www.mrexcel.com/board/threads/adding-data-validation-via-vba-returns-1004-error.331279/

มันแค่ช่วยฉัน

person Guilherme Rafael Dalmedico    schedule 19.05.2020
comment
คุณสามารถอัปเดตคำตอบเพื่อให้คำอธิบายเพิ่มเติมเกี่ยวกับวิธีแก้ปัญหาแทนที่จะอาศัยลิงก์เป็นหลักได้หรือไม่ คำตอบควรอยู่ได้ด้วยตัวเองแม้ว่าลิงก์จะถูกลบออกในภายหลังก็ตาม - person Jeremy Caney; 19.05.2020