Page 1 of 1
excel 2016 บางคำสั่งใน VBA ใช้โค้ดไม่เหมือนกับ version เก่า ในอนาคตควรปรับตัวยังไงครับ
Posted: Thu Aug 04, 2016 11:53 am
by zern
ผมเอาไฟล์ไปรันในเครื่อง 2016 แล้วคำสั่งเช่น pastespecial, sendtoback, sendtofront และการประกาศตัวแปรที่จะใช้ xxx= ..... โดยละ Dim ไม่ได้ต้องมี Dim xxx ก่อนทุกตัว
ซึ่งจากทีว่ามา แนวโน้มของ excel จะเป็นยังไงครับ จะต้องปรับตัวตาม Code ใหม่ใน 2016 หรือว่าเป็นสิ่งที่ ms office น่าจะต้องแก้ไขในอนาคต หรือจะมีโปรแกรมสำหรับแปลงโค้ดจาก version เก่ามาเป็น version 2016 ให้โดยอัตโนมัติเลยหรือเปล่า ขอความเห็นหน่อยครับ
Re: excel 2016 บางคำสั่งใน VBA ใช้โค้ดไม่เหมือนกับ version เก่า ในอนาคตควรปรับตัวยังไงครับ
Posted: Thu Aug 04, 2016 6:25 pm
by snasui

Excel รุ่นใหม่ๆ สามารถ Run Code ของ Excel รุ่นก่อนหน้าได้ หาก Run ไม่ได้ให้แนบไฟล์ต้วอย่างมาถาม จะได้ตอบได้ตรงประเด็นครับ
เรื่องการประกาศตัวแปร การกำหนดค่าให้กับตัวแปร ดูเหมือนจะยังสับสน ลองกลับไปอ่านที่นี่อีกรอบครับ
viewtopic.php?f=3&t=10235&p=64443#p64426
Re: excel 2016 บางคำสั่งใน VBA ใช้โค้ดไม่เหมือนกับ version เก่า ในอนาคตควรปรับตัวยังไงครับ
Posted: Thu Aug 04, 2016 7:56 pm
by zern
ผมสับสนแค่คำเรียกน่ะครับ
เท่าที่เล่นมา 2016 กำหนดค่าตัวแปรอย่างเดียวไม่ได้ ต้องประกาศตัวแปรด้วย
แต่เวอร์ชั่นต่ำกว่านั้น สามารถกำหนดค่าตัวแปรได้เลยโดยไม่ต้องประกาศ
และคำสั่ง sheets("xxx").range("a1").pastespecial xlvalues ผมรันบนเวอร์ชั่นต่ำได้ แต่พอไปรันใน 2016 แล้วมันขึ้น debug
เดี๋ยวไว้ผมลองแนบไฟล์ส่งให้ครับ ตอนนี้ไฟล์ที่เข้าข่ายมีแต่ไฟล์ที่มีข้อมูลบริษัททั้งนั้น ปล่อยลงเนตละงานเข้าแน่
Re: excel 2016 บางคำสั่งใน VBA ใช้โค้ดไม่เหมือนกับ version เก่า ในอนาคตควรปรับตัวยังไงครับ
Posted: Thu Aug 04, 2016 8:58 pm
by snasui
zern wrote:เท่าที่เล่นมา 2016 กำหนดค่าตัวแปรอย่างเดียวไม่ได้ ต้องประกาศตัวแปรด้วย

ไม่มี Version ไหนที่เป็นเช่นนั้นครับ ทุก Version ไม่จำเป็นต้องประกาศตัวแปร
การที่ต้องประกาศตัวแปร แสดงว่ามีการกำหนด Option ให้ต้องประกาศตัวแปรตามภาพด้านล่าง โดยจะแสดงคำว่า
Option Explicit อยู่บรรทัดแรกของ Window ที่ใช้เขียน Code หมายถึงต้องประกาศตัวแปรเสมอ
Re: excel 2016 บางคำสั่งใน VBA ใช้โค้ดไม่เหมือนกับ version เก่า ในอนาคตควรปรับตัวยังไงครับ
Posted: Thu Aug 04, 2016 9:55 pm
by zern