การรวม INDIRECT () และ UDF [ปิด]


1

ฉันสร้าง Excel UDF เพื่อค้นหา n การเกิดขึ้นของค่าในช่วง UDF ขึ้นอยู่กับหนึ่งใน http://www.ozgrid.com/Excel/find-nth.htm :

Function Nth_Occurrence(range_look As Range, find_it As String, _

    occurrence As Long, offset_row As Long, offset_col As Long)

Dim lCount As Long

Dim rFound As Range

    Set rFound = range_look.Cells(1, 1)

        For lCount = 1 To occurrence

            Set rFound = range_look.Find(find_it, rFound, xlValues, xlWhole)

        Next lCount

   Nth_Occurrence = rFound.Offset(offset_row, offset_col)

End Function

อย่างไรก็ตามฉันกำลังประสบปัญหากับช่วง ฉันกำลังพยายามใช้ INDIRECT () เพื่ออ้างอิงช่วงหนึ่งในสมุดงานอื่น สูตรที่ฉันมีตอนนี้คือ

 =Nth_Occurrence(INDIRECT("'["&$L$1&"]1'!$A$2:$A$10"),C1,1,1,1)

กล่าวอีกนัยหนึ่งฉันกำลังมองหาช่วงในเวิร์กบุ๊กชื่อที่เก็บไว้ใน L1 และชื่อของเวิร์กชีทในเวิร์กบุคนั้นคือ 1 ฉันใช้สูตรนี้สำเร็จโดยไม่ต้องใช้ INDIRECT () แต่ เมื่อฉันพยายามใช้ INDIRECT () ฉันได้รับข้อผิดพลาด #VALUE เป็นปัญหากับ VBA หรือข้อ จำกัด ทั่วไปเกี่ยวกับ UDF หรือไม่? ขอบคุณ


คุณตรวจสอบสูตรเพื่อดูว่ามันผิดปกติหรือไม่?
Raystafarian

@Raystafarian ใช่ฉันได้ลองติดตามก่อนหน้าแล้วและใช้ตัวเลือกสูตรประเมิน ดูเหมือนว่าจะไม่ระบุแหล่งที่มาของปัญหา ถ้าฉันเลือกช่วงในเวิร์กบุ๊กเดียวกันสูตร Nth_Occurrence ก็ใช้ได้ดี เมื่อฉันใช้ INDIRECT () เพื่อหาช่วงในเวิร์กบุ๊กอื่น (ฉันมีเวิร์กบุ๊กอื่นที่เปิดอยู่)
testing man

@ Raystafarian ดูเหมือนว่าปัญหาเกิดจากความโง่เขลาของฉันเองมากกว่าปัญหาใน VBA ปรากฎว่าฉันทำผิดพลาดในสมุดงานอื่นที่เป็นสาเหตุของปัญหา น่าตกใจ เนื่องจากปัญหานี้ไม่มีอยู่มีวิธีลบคำถามนี้ไหม
testing man

ที่ด้านล่างของคำถามอาจมีปุ่มลบ หากไม่สามารถลบได้ (อาจเป็นเพราะมีการโหวต)
Raystafarian

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