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

ลบ
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

เป็นการฟ้องตามปกติที่มีการ Save ไฟล์ที่มี Macro ไปเป็นไฟล์ที่ไม่มี Macro ครับ

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 เป็น .xls
x
ส่วนที่ขึ้นเตือนเพราะเป็นการ 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

มีทางทำเช่นนั้นแน่นอนครับ ด้วย VBA ย่อมทำได้ทุกอย่าง ขึ้นกับความสามารถของผู้ใช้งานครับ
ลองบันทึก Macro มาดู สำหรับการเลือกทุกชีทพร้อมกัน สามารถคลิกขวาที่ชีทใด ๆ แล้วเลือก Select All Sheets หากยกเลิกให้เลือก Ungroup Sheets หรือหากคล่องแล้วก็ใช้วิธีการ Loop เพื่อนำค่าจากทุกชีทไปวางในไฟล์ใหม่ครับ
Re: ปุ่มเซฟไฟล์ เมื่อเซฟแล้วกลับได้มาแค่ชีทเดียว
Posted: Tue Feb 26, 2013 8:28 pm
by impresxy
ขอบคุณค่ะ อาจารย์ เลือกสองชีทแล้วค่อยกดปุ่ม ทำได้แล้วค่ะ ขอบคุณค่ะ