snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
moosuper013
Member
Posts: 16 Joined: Thu May 29, 2014 4:41 pm
#1
Post
by moosuper013 » Wed Jun 04, 2014 12:41 pm
1.คือถ้าผมต้องการ ให้ TextBox แสดงข้อมูล แบบ อันตโนมัน ตามนี้ 2014060001 คำอธิบายคือ 2014 คือปีปัจจุบัน 06 คือเดือนปัจจุบัน 0001 คือลำดับที่มีการสมัครเข้ามาตามลำดับ ไม่ทราบว่าจะต้องเขียน สูตร VBA อย่าไรครับ
2.และมีการ นำข้อมูลจาก Form ที่กรอกข้อมูล ไปSave ในไฟล์ Excel อื่น จะต้องเขียนสูตรอย่างไรครับ
ขอบคุณครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Wed Jun 04, 2014 12:47 pm
ต้องเขียนมาเองก่อนเสมอครับ ติดส่วนไหน ค่อยปรับแก้กันไปเรื่อยๆครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Wed Jun 04, 2014 2:29 pm
ลองดูศึกษาตามไฟล์ตัวอย่างครับ ผมลองเขียนไว้
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
moosuper013
Member
Posts: 16 Joined: Thu May 29, 2014 4:41 pm
#5
Post
by moosuper013 » Thu Jun 05, 2014 10:37 am
เรียน คุณBank9597
ขอบคุณมากครับสำหรับไฟล์ตัวอย่าง ขอบคุณมากครับสำหรับสูตร ถ้าผมต้องการเมื่อขึ้นเดือนใหม่ให้ทำการรันเลข 0000ใหม่ แบบนี้ต้องเขียน เงื่อนไขอย่างไรครับ
แล้วถ้าจะต้องการให้ทำการบันทึกข้าม workbook โดยไฟล์ไม่ต้องเปิดแบบนี้ ประมาณไหนครับ
ขอบคุณมากๆครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#6
Post
by bank9597 » Thu Jun 05, 2014 11:15 am
moosuper013 wrote: เรียน คุณBank9597
ขอบคุณมากครับสำหรับไฟล์ตัวอย่าง
แล้วถ้าจะต้องการให้ทำการบันทึกข้าม workbook โดยไฟล์ไม่ต้องเปิดแบบนี้ ประมาณไหนครับ
การบันทึกข้ามไฟล์ ซึ่งไฟล์ปลายทางปิดอยู่นั้น จะทำได้ยากมากครับ ต้องใช้พวก ADO เข้ามาช่วย ซึ่งต้องชำนาญ VBA มากๆ ถึงจะเขียนได้ครับ
ลองใช้วิธีสั่งให้เปิดไฟล์ แล้วบันทึกข้อมูล แล้วก็สั่งปิดไฟล์ แบบนี้จะสะดวกกว่าครับ
ไฟล์แนบ 2 ไฟล์ ให้นำไฟล์ data ไปไว้ในไดร์ฟ D ครับ แล้วทดสอบบันทึกข้อมูลในไฟล์ vba save closed file
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
moosuper013
Member
Posts: 16 Joined: Thu May 29, 2014 4:41 pm
#7
Post
by moosuper013 » Thu Jun 05, 2014 11:54 am
ขอบคุณครับ
ต้องขอโทษครับพอดีผมไม่ได้แจ้ง ว่าถ้าต้องการดึงจาก textboxในหน้า Userform นี้จะต้องเพิ่มยังไงบ้างครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#8
Post
by bank9597 » Thu Jun 05, 2014 11:57 am
moosuper013 wrote: ขอบคุณครับ
ต้องขอโทษครับพอดีผมไม่ได้แจ้ง ว่าถ้าต้องการดึงจาก textboxในหน้า Userform นี้จะต้องเพิ่มยังไงบ้างครับ
ผมให้วิธีการทั้ง 2 แบบไปแล้ว ที่เหลือ คุณต้องทำเองครับ ติอส่วนไหนค่อยถามมาเรื่อยๆครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
moosuper013
Member
Posts: 16 Joined: Thu May 29, 2014 4:41 pm
#9
Post
by moosuper013 » Thu Jun 05, 2014 12:34 pm
ผมรบกวนขอคำอธิบายตรงส่วนโค้ดด้วยได้หรือเปล่าครับ พอดีผมพึงเริ่มเขียน VBA ก่อนหน้านี้ ใช้แค่ C
Code: Select all
wss.Range("A2:D2") _
.Resize(wss.Range("E1"), 4).Copy <<<<<ทำไหมต้องกำหนดค่าให้ E1 = 1
exOpen.Sheets("data").Range("A" & Rows.Count) _
.End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
wss.Range("A2:D2").ClearContents
แค่เฉพาะโค้ตนี้ครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#10
Post
by bank9597 » Thu Jun 05, 2014 12:42 pm
moosuper013 wrote: ผมรบกวนขอคำอธิบายตรงส่วนโค้ดด้วยได้หรือเปล่าครับ พอดีผมพึงเริ่มเขียน VBA ก่อนหน้านี้ ใช้แค่ C
Code: Select all
wss.Range("A2:D2") _
.Resize(wss.Range("E1"), 4).Copy <<<<<ทำไหมต้องกำหนดค่าให้ E1 = 1
exOpen.Sheets("data").Range("A" & Rows.Count) _
.End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
wss.Range("A2:D2").ClearContents
แค่เฉพาะโค้ตนี้ครับ
เพราะเราต้องการบันทึกแค่ 1 บันทัด
ที่จริงตรง E1 มีไว้นับจำนวนบรรทัดของข้อมูลที่เราต้องการ ในกรณีมีการบันทึกครั้งล่ะ 1 บรรทัด เราสามารถปรับโค๊ด
.Resize(wss.Range("E1"), 4).Copy เป็น
.Resize(1, 4).Copy
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ