Page 1 of 1

ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 7:29 pm
by impresxy
สวัสดีคะ
รบกวนสอบถามว่า หนูเขียน code ให้ปุ่มสามารถเซฟไฟล์ได้ที่โฟลเดอร์ที่กำหนด แต่เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว ชีทที่ 2 ไม่ถูกเซฟ ไม่แน่ใจว่าทำอะไรผิดไป รบกวนด้วยนะคะ
ขอบคุณค่ะ

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 7:35 pm
by snasui
:D ลบ ActiveSheet.Copy ทิ้งไปก็ควรจะ Save ทั้งไฟล์ครับ

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 7:44 pm
by impresxy
ขอบคุณมากๆค่ะ
แต่ทำไมคราวนี้เวลากดปุ่ม มันฟ้องว่า
The following features cannot be saved in macro-free workbooks:
-VB project

To save a file with these features, click No, and then choose a macro-enabled file type in the file type list.

To continue saving as a macro-free workbook, click Yes.

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 7:51 pm
by snasui
:D เป็นการฟ้องตามปกติที่มีการ Save ไฟล์ที่มี Macro ไปเป็นไฟล์ที่ไม่มี Macro ครับ :mrgreen:

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 7:56 pm
by impresxy
ก่อนจะเอาคำว่า ActiveSheet.Copy ออก ทำไมมันถึงไม่ฟ้องคะ มันเกี่ยวข้องกันด้วยหรือคะ

แล้วทำให้มันไม่ขึ้นได้ไหมคะ
ขอบคุณมากๆค่ะ อาจารย์

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 8:03 pm
by snasui
impresxy wrote:ก่อนจะเอาคำว่า ActiveSheet.Copy ออก ทำไมมันถึงไม่ฟ้องคะ
ไม่ฟ้องเพราะว่าเป็นการสร้างไฟล์ใหม่โดย Copy Active Sheet ไปวางและ Save เป็น .xlsx

ส่วนที่ขึ้นเตือนเพราะเป็นการ Save As จากไฟล์ปัจจุบันที่มี Macro และเดิมเป็น .xlsm เมื่อ Save เป็น .xlsx จึงฟ้งเสมอครับ

หากไม่ต้องการให้มีการฟ้อง ให้ Copy ค่าในทุกชีทไปวางในไฟล์ใหม่ แล้วค่อย Save จากไฟล์ใหม่

หรือลองเพิ่ม Code ด้านล่างเข้าไปช่วยดูครับ

Code: Select all

Application.DisplayAlerts = False
'Other code
Application.DisplayAlerts = True

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 8:18 pm
by impresxy
อาจารย์คะ มันมีทางไหนที่จะเป็นการ copy ทั้ง 2 ชีท เพื่อเซฟไหมคะ ลองใส่โค๊ดอาจารย์แล้ว มันยังมีฟ้องขึ้นมาทั้ง True ทั้ง False เลยค่ะ

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 8:22 pm
by snasui
:D มีทางทำเช่นนั้นแน่นอนครับ ด้วย VBA ย่อมทำได้ทุกอย่าง ขึ้นกับความสามารถของผู้ใช้งานครับ

ลองบันทึก Macro มาดู สำหรับการเลือกทุกชีทพร้อมกัน สามารถคลิกขวาที่ชีทใด ๆ แล้วเลือก Select All Sheets หากยกเลิกให้เลือก Ungroup Sheets หรือหากคล่องแล้วก็ใช้วิธีการ Loop เพื่อนำค่าจากทุกชีทไปวางในไฟล์ใหม่ครับ

Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว

Posted: Tue Feb 26, 2013 8:28 pm
by impresxy
ขอบคุณค่ะ อาจารย์ เลือกสองชีทแล้วค่อยกดปุ่ม ทำได้แล้วค่ะ ขอบคุณค่ะ