Page 1 of 1

record macro แล้วไม่ได้ผลลัพธ์ที่ต้องการ

Posted: Mon May 11, 2015 4:00 pm
by pori
ใช้ macro บันทึกสูตรที่เป็น Array แต่เมื่อ run ออกมาแล้ว สูตรกลับแสดงค่าเป็น R1C1 ทำให้สูตรไม่ทำงานค่ะ

ตอนบันทึก macro ไม่ได้ใช้ relative references เลยค่ะ ไม่ทราบว่าเกิดจากสาเหตุใด และทำยังไงให้บันทึกออกมาเป็นสูตรปกติได้คะ

ตัวอย่างตามข้างล่างนี้


1. สูตรที่ต้องการ

=IF($V9="","",IF($K9="จำนวนเงิน","Bank-code",INDEX(INDIRECT("code"&$T9),MATCH(1,IF($P9=INDIRECT("amount"&$T9),IF($Y9=INDIRECT("date"&$T9),1)),0))))


2. บันทึก macro แบบนี้

Selection.FormulaArray = _
"=IF(RC22="""","""",IF(RC11=""จำนวนเงิน"",""Bank-code"",INDEX(INDIRECT(""code""&RC20),MATCH(1,IF(RC16=INDIRECT(""amount""&RC20),IF(RC25=INDIRECT(""date""&RC20),1)),0))))"



3. แต่เมื่อ run macro ออกมา สูตรแสดงในชีทเป็นอย่างนี้ค่ะ

={IF(RC22="","",IF(RC11="จำนวนเงิน","Bank-code",INDEX(INDIRECT("code"&RC20),MATCH(1,IF(RC16=INDIRECT("amount"&RC20),IF(RC25=INDIRECT("date"&RC20),1)),0))))}


ขอบพระคุณอย่างสูงค่ะ :thup: :thup:

Re: record macro แล้วไม่ได้ผลลัพธ์ที่ต้องการ

Posted: Mon May 11, 2015 4:35 pm
by snasui
:D สำหรับข้อจำกัดของ Array แบบที่ถามมานั้น จะแสดงแบบ R1C1 เท่านั้น อ่าน Link นี้ประกอบครับ viewtopic.php?t=8269

Re: record macro แล้วไม่ได้ผลลัพธ์ที่ต้องการ

Posted: Mon May 11, 2015 4:44 pm
by pori
ค่ะ คือเข้าใจว่าสูตรที่แสดงใน VBA จะแสดงเป็น R1C1 เสมอ แต่เมื่อ Run แล้ว สูตรใน cell ก็ควรแสดงผลแบบ A1 เพื่อให้สูตรมันคำนวณได้ต่อไป หรือไม่คะ

แต่อันนี้ มันก็ยังคงเป็น R1C1 ใน Cell อยู่ดี สูตรเลยไม่ยอมคำนวณให้น่ะค่ะ ทั้งๆที่ ถ้ากรอกสูตรแบบปกติโดยไม่ใช้ macro ช่วย ก็แสดงผลตามสูตรได้นะคะ

ยังงงอยู่นิดๆค่ะ ถ้าเข้าใจผิดขออภัยค่ะ

Re: record macro แล้วไม่ได้ผลลัพธ์ที่ต้องการ

Posted: Mon May 11, 2015 6:28 pm
by snasui
:D แนบไฟล์พร้อมชี้ให้เห็นว่าข้อมูลต้นทางเป็นอย่างไร ต้องการคำตอบเป็นอย่างไรมาด้วยครับ