Page 1 of 1

ใช้ vba อ่านค่าจาก name formula ที่เป็น array

Posted: Sat Nov 08, 2014 7:19 am
by wanchai1
ผมทำสูตรคำนวณไว้ใน name ที่ให้ผลเป็น array ผมพยายามจะอ่านค่าออกมาโดยใช้ evaluate จะได้แค่ค่าแรกค่าเดียว ต้องใช้คำสั่งอะไรถึงจะอ่านค่าออกมาได้ทั้ง array ครับ

ที่ไม่อยากเอา name ไปแปะไว้บน work sheet เพราะว่าสูตรจะให้ array ที่มี dimension ไม่คงที่ พอส่งไปให้ user ใช้แล้ว ต้องคอยมาปรับใน work sheet ครับ

ผมเจออีกปัญหาครับ สูตรจะคำนวณใหม่ถ้ามีการแก้ไขค่าใน cell อื่น ที่ไม่ได้อยู่ในสูตร ทั้งที่ไม่ได้ใช้ function ใน name ที่เป็น volatile เลย ทำให้ worksheet ทำงานช้ามาก แต่ถ้าใช้สูตรเดียวกันใส่ไปใน worksheet เลยก็ไม่เป็นครับ ต้องไปตั้งค่าใน excel ที่ไหนครับ ผมใช้ excel 2010

ขอบคุณมากครับ

Re: ใช้ vba อ่านค่าจาก name formula ที่เป็น array

Posted: Sat Nov 08, 2014 7:37 am
by snasui
:D แนบไฟล์ตัวอย่างพร้อมแสดงตัวอย่างคำตอบที่ต้องการมาด้วยครับ สำหรับ VBA จำเป็นต้องเป็นไปตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ

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

การไม่ให้สูตรคำนวณก็ต้องปรับการคำนวณให้เป็น Manual หากจะคำนวณค่อยกดแป้น F9 เช่นนี้เป็นต้นครับ

Re: ใช้ vba อ่านค่าจาก name formula ที่เป็น array

Posted: Sat Nov 08, 2014 8:30 am
by wanchai1
ขออนุญาต แนบ file ครับ

Re: ใช้ vba อ่านค่าจาก name formula ที่เป็น array

Posted: Sat Nov 08, 2014 8:43 am
by snasui
:D ช่วยอธิบายมาว่าเซลล์ใดต้องการคำตอบเป็นเท่าใด คิดอย่างไรจึงได้ค่าเท่านั้นครับ