ใช้ฟังก์ชั่นที่ผู้ใช้กำหนดสำหรับการตรวจสอบข้อมูล


0

ฉันสร้างช่วงที่ตั้งชื่อซึ่งเป็นผลมาจากฟังก์ชั่นการกำหนดผู้ใช้

สมมติว่าความโกรธของฉันมีชื่อว่าListและมีสามรายการถ้าฉันเลือกสามเซลล์และป้อน=ListและกดCtrl+ Shift+ Enterฉันได้รับสามรายการในเซลล์ ... ดังนั้นทุกอย่างดูดี

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

นี่เป็นข้อ จำกัด ของ Excel หรือไม่ หากไม่ใช่สิ่งผิดปกติและฉันจะทำอย่างไร

ฟังก์ชั่น:

Public Function testarrayreturn() As Variant
    Dim Arr(2) As String
    Arr(0) = "a"
    Arr(1) = "b"
    Arr(2) = "c"

    testarrayreturn = Application.Transpose(Arr)
End Function

ช่วงที่มีชื่อถูกกำหนดให้เป็น testarrayreturn()


ช่วงนี้อยู่ในแผ่นงานอื่นหรือไม่? การตรวจสอบความถูกต้องของข้อมูลนั้น จำกัด เฉพาะสิ่งที่อยู่ในแผ่นงานเดียวกันกับการตรวจสอบความถูกต้อง
ApplePie

คุณหมายถึงว่าฟังก์ชั่นจะต้องอยู่ในรหัสของแผ่นงานหรือไม่ เมื่อไม่มีฟังก์ชั่นที่ผู้ใช้กำหนดเองช่วงสามารถอยู่ที่ใดก็ได้มันทำงานได้ดี…
gregseth

คำตอบ:


0

TL; DR เป็นไปไม่ได้ตามที่อธิบายไว้ (เปรียบเทียบโพสต์นี้บน SO )

Long (er) คำตอบ: มีวิธีแก้ปัญหา ฟังก์ชั่นที่ผู้ใช้กำหนดจะต้องส่งคืนค่าที่Rangeไม่ใช่อาร์เรย์ ดังนั้นการแก้ปัญหาคือการใช้แผ่นงานที่ใช้แล้วทิ้งเพื่อ "วาง" ข้อมูลชั่วคราว

เนื่องจากการหลีกเลี่ยงข้อมูลชั่วคราวเป็นเหตุผลที่แน่นอนที่ฉันต้องการใช้ UDF มันแย่มาก แต่ก็มีประโยชน์สำหรับคนอื่น

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