snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#1
Post
by dragonna » Thu Jun 07, 2012 11:43 am
กราบสวัสดีครับอาจารย์ ผมเองกำลังหา VBA มาใช้แล้วได้เจอที่อาจารย์โพสไว้แล้วเป็นประโยชน์มากครับ จึงจะมารบกวนให้อาจารย์ช่วยชี้แนะให้น่ะครับ
สืบเนื่องมาจาก
http://snasui.blogspot.com/2011/07/blog-post_01.html ครับ
ผมเองทำงานงานบัญชี ต้องกระทบยอดรายการทางบัญชี ซึ่งมีข้อมูลประมาณ 16 คอลัมภ์น่ะครับ
ถ้าผมใส่ตัวกรองใน คอลัมภ์ S (19) แล้วจะให้ข้อมูลตั้งแต่คอลัมภ์ A ถึง คอลัมภ์ R ขึ้่นไปอยู่ด้านบน ผมต้องทำอย่างไรบ้างครับ
รบกวนอาจารย์ชี้แนะแนวทาง และวิธีการนำไปใช้ ดัดแปลง แก้ไข ต่อไปภายหน้าด้วยครับ
ขอบพระคุณมาก ๆ ครับ
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Thu Jun 07, 2012 12:09 pm
ลองปรับแก้ค่าที่ผมทำลูกศรชี้ไว้ในภาพด้านล่างครับ
You do not have the required permissions to view the files attached to this post.
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#3
Post
by dragonna » Thu Jun 07, 2012 12:31 pm
ขอบคุณมาก ๆ ครับอาจารย์ ผมเองไม่ีมีความรู้เรื่อง VBA เลยครับ ก็ได้แต่เอาโค๊ตของอาจารย์ไปใช้ ไม่เข้าใจสักทีว่าต้องประยุกต์ยังไงบ้าง ผมจะพยายามทำดูนะครับ
ขอบคุณครับ
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#4
Post
by dragonna » Fri Jun 08, 2012 1:09 pm
อาจารย์ครับผมลองแก้แล้ว ปรากฎว่าตัวไฟล์ค้างไปเลยครับ เลยไม่รู้ว่าแก้ถูกผิดยังน่ะครับ ช่วยแนะนำด้วยครับผม
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
With Target
If .Count > 1 Then
Exit Sub
ElseIf .Column = 19 And .Offset(1, 0) = "" _
And .Offset(-1, 0) = "" Then
.Offset(0, -1).Resize(, 19 ).Cut
.End(xlUp).Offset(1, -1) _
.Resize(, 19 ).Insert shift:=xlDown
End If
End With
Application.ScreenUpdating = True
End Sub
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Fri Jun 08, 2012 2:19 pm
แนบไฟล์ตัวอย่างมาด้วยครับ
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#6
Post
by dragonna » Fri Jun 08, 2012 2:53 pm
รบกวนด้วยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Fri Jun 08, 2012 2:56 pm
ไฟล์ตัวอย่างพร้อม Code ควรเป็นไฟล์ที่มีนามสกุลเป็น
.xlsm หากเป็น Excel 2007 ขึ้นไป ที่แนบมานั้นเป็น .xlsx ครับ
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#8
Post
by dragonna » Fri Jun 08, 2012 3:52 pm
ต้องขอโทษด้วยครับอาจารย์ ผมเองยังไม่ค่อยเข้าใจเท่าไร แต่พยายามหาความรู้เพิ่มเติมครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Fri Jun 08, 2012 4:11 pm
ลองปรับ Code ใน Sheet1 เป็นตามด้านล่างครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
With Target
If .Count > 1 Then
Exit Sub
ElseIf .Column = 19 And .Offset(1, 0) = "" _
And .Offset(-1, 0) = "" Then
.Offset(0, -18).Resize(, 19).Cut
.End(xlUp).Offset(1, -18) _
.Resize(, 19).Insert shift:=xlDown
End If
End With
Application.ScreenUpdating = True
End Sub
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#10
Post
by dragonna » Fri Jun 08, 2012 4:26 pm
ขอบคุณครับอาจารย์ แต่พอเอาไปลองใส่แล้ว เกิด error ครับ ว่า
" compile error
Invalid outside procedure"
ครับ แก้ไขยังไงครับผม
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Fri Jun 08, 2012 4:28 pm
ไปลบ Code เดิมใน ThisWorkbook ออกครับ
dragonna
Member
Posts: 40 Joined: Wed Oct 26, 2011 9:25 am
#12
Post
by dragonna » Sat Jun 09, 2012 9:36 am
ได้แล้วครับ ขอบคุณมาก ๆ ครับผม