:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

รบกวนสอบถามเรื่อง Macro ค่ะ

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: รบกวนสอบถามเรื่อง Macro ค่ะ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#18

by duangneth.ko » Fri Dec 16, 2011 3:26 pm

ขอบคุณค่ะ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#17

by snasui » Fri Dec 16, 2011 3:20 pm

:) ลองตาม Code นี้ครับ

Code: Select all

Sub Deleterow()
    Dim cell As Range
    Dim AllCell As Range
    Dim wsh As Worksheet
    On Error Resume Next
    For Each wsh In Worksheets
        With wsh
            Set AllCell = wsh.Range("A1", wsh.Range( _
                "A" & Rows.Count).End(xlUp))
        End With
        For Each cell In AllCell
            If cell = 0 Then
                cell.ClearContents
            End If
        Next
        AllCell.SpecialCells(xlCellTypeBlanks) _
            .EntireRow.Delete
    Next wsh
End Sub

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#16

by duangneth.ko » Fri Dec 16, 2011 3:12 pm

จุ๊บไม่ Save ตัว Macro ที่ลบบรรทัด แบบทั้ง Sheet ไว้เลยค่ะ รบกวนขออีกครั้งได้ ??? ขอบคุณค่ะ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#15

by snasui » Fri Dec 16, 2011 3:10 pm

:D ฟอรัมถูก Restore มาใหม่เนื่องจากมีปัญหาครับ ต้องขออภัยสำหรับกรณีดังกล่าวครับ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#14

by duangneth.ko » Fri Dec 16, 2011 3:04 pm

ทำไมข้อมูลที่ Post ส่วนท้ายถึงหายไปค่ะ เพราะล่าสุด จุ๊บ เปิดดูวันอังคาร ยังมี Macro ที่เขียนเรื่องการลบบรรทัดทั้ง Sheet เลยค่ะ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#13

by ChoBkuN » Wed Dec 07, 2011 9:43 am

สุดยอด
โปรแกรมบัญชีบางตัวเมื่อ export GL ออกมาแล้ว มักจะพบปัญหา รายงานออกมาบรรทัดเว้นบรรทัด
ถ้าใช้วิธีนี้ ก็สามารถแก้ปัญหาได้

แต่เดิมใช้เพิ่มช่องลากเลขจนสุด แล้ว filter เอา blank ออก
ขอบคุณครับ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#12

by duangneth.ko » Mon Dec 05, 2011 8:08 pm

ขอบคุณมากค่ะ เดี๋ยวจุ๊บจะลองทำดูน๊ะค่ะ เมื่อสักครู่ออกไปหาซื้อหนังสือมา แต่ยังไม่ได้ค่ะ

จุ๊บ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#11

by snasui » Mon Dec 05, 2011 7:38 pm

:D การลบไม่เหมือนการซ่อนหรือยกเลิกการซ่อนครับ ปกติเมื่อลบด้วยการ Loop จะลบจากล่างขึ้นบนหรือจากขวาไปซ้าย Code ถึงจะทำงานถูกต้อง แต่ถ้าใช้เทคนิคการหา Special cells เช่น เซลล์ว่างก็สามารถลบเซลล์ว่างทั้งหมดได้พร้อมกันทันที

ตัวอย่างการปรับปรุง Code เพื่อซ่อนบรรทัดที่มีค่าเป็น 0

Code: Select all

Sub HideRows()
    Dim cell As Range
    Dim AllCell As Range
    With Sheets("Sheet1")
        Set AllCell = .Range("A1", .Range( _
            "A" & Rows.Count).End(xlUp))
    End With
    For Each cell In AllCell
        If cell = 0 Then
            cell.EntireRow.Hidden = True
        End If
    Next
End Sub
ตัวอย่างการลบบรรทัดที่มีค่าเป็น 0

Code: Select all

Sub Deleterow()
    Dim cell As Range
    Dim AllCell As Range
    With Sheets("Sheet1")
        Set AllCell = .Range("A1", .Range( _
            "A" & Rows.Count).End(xlUp))
    End With
    For Each cell In AllCell
        If cell = 0 Then
            cell.ClearContents
        End If
    Next
    AllCell.SpecialCells(xlCellTypeBlanks) _
        .EntireRow.Delete
End Sub
สำหรับหนังสือลองดูที่นี่ครับ http://www.spreadsheetpage.com/index.php/book/C45/

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#10

by duangneth.ko » Mon Dec 05, 2011 7:06 pm

รบกวนช่วยแนะนำหนังสือด้วยได้หรือเปล่าค่ะ จุ๊บจะได้หามาศึกษาเพิ่มเติม เกรงใจค่ะ

ขอบคุณค่ะ
จุ๊บ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#9

by duangneth.ko » Mon Dec 05, 2011 7:03 pm

ได้แล้วค่ะ Hiderow แล้วถ้าเป็น Delete จุ๊บลองเปลี่ยน code ดู
Sub Deleterow()
Dim cell As Range
For Each cell In Range("a:a")
If UCase(cell.Value) = "0" Then
cell.EntireRow.Delete = True
End If
Next
End Sub
เหตุใด macro ถึงลบให้จุ๊บแค่บรรทัด A9 บรรทัดเดียวค่ะ บรรทัด A6:A8 ไม่ยอมลบค่ะ

รบกวนด้วยค่ะ
จุ๊บ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#8

by snasui » Mon Dec 05, 2011 6:46 pm

:shock: คุณจุ๊บนำ Code มาใช้ตรง ๆ โดยไม่ปรับปรุงก็ย่อมใช้ไม่ได้ ซึ่ง Code ที่แนบมากับสิ่งที่ต้องการให้ทำงานอยู่คนละช่วงเซลล์ครับ เซลล์ที่ต้องการให้ตรวจสอบอยู่ในคอลัมน์ A แต่ Code ที่แนบมานั้นไปตรวจสอบค่าในคอลัมน์ E

นอกจากนี้การตรวจสอบจะตรวจสอบค่าที่เป็น 0 ไม่ใช่ตรวจสอบค่าที่มีค่าเท่ากับ NO

ลองปรับปรุง Code มาดูครับ โดยเปลี่ยน

Range("e:e") เป็น Range("A:A") และเปลี่ยน UCase(cell.Value) = "NO" เป็น cell.Value = 0

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#7

by duangneth.ko » Mon Dec 05, 2011 6:33 pm

ไม่ทราบว่า File ที่แนบไปผ่านหรือเปล่าค่ะ เนื่องจากพอคลิกที่ตั้งกระทู้ แล้ว error ค่ะ
Attachments
TEST HIDE ROW.xlsm
(15.35 KiB) Downloaded 12 times

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#6

by snasui » Mon Dec 05, 2011 6:13 pm

:D ช่วยแนบไฟล์ตัวอย่างพร้อม Code มาด้วยครับ จะได้ช่วยกันทดสอบได้

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#5

by duangneth.ko » Mon Dec 05, 2011 6:10 pm

ต้องขอโทษด้วยค่ะ ดิฉันพยายามค้นหาจาก Internet โดยดิฉันได้วิธีการเขียน code แต่เมื่อนำไปใช้จริง มันไม่สามารถใช้ได้ค่ะ ดิฉันไม่แน่ใจว่าติดตรงส่วนใด
ดิฉันทดลองคีย์ข้อมูล A1:A13 โดย A6:A9 ไม่มีมูลค่าค่ะ

Sub HideRows()
Dim cell As Range
For Each cell In Range("e:e")
If UCase(cell.Value) = "NO" Then
cell.EntireRow.Hidden = True
End If
Next
End Sub

จริง ๆ แล้ว สิ่งที่ดิฉันต้องการคือ การลบบรรทัดที่ไม่มีมูลค่าออกไป เนื่องจากข้อมูลดิฉันเยอะมากค่ะ ถ้าเขียนได้ มันจะช่วยประหยัดเวลาการทำงานได้มากเลยทีเดียว

รบกวนแนะนำด้วยค่ะ
จุ๊บ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#4

by snasui » Mon Dec 05, 2011 5:53 pm

:D พยายามงดถามถึงผมโดยตรงนะครับ เนื่องจากท่านที่ทราบจะไม่เข้ามาตอบจะทำให้เสียเวลารอคอยนานหากผมไม่ว่าง

ผมได้แนะนำเพื่อนสมาชิกทั้งหลายที่เคยถามปัญหาเกี่ยวกับ Macro มาก่อนหน้านี้ว่าให้ทำมาก่อน แล้วมาสอบถามกันเฉพาะส่วนที่ติดขัด โดยผมไม่ทำตัวอย่างหรือตอบไปให้ก่อนซึ่งผมจำเป็นต้องปฏิบัติให้เสมอภาคกันกับทุก ๆ ท่านครับ

อย่างที่บอกไปแล้วว่าผู้ถามจำเป็นจะต้องมีความรู้เพื่อที่จะปรับปรุงเองได้ ซึ่งนั่นหมายความว่า สามารถบันทึก Macro เองได้ด้วย หากยังไม่เคยบันทึก Macro ผมขอแนะนำให้หาหนังสือมาอ่านก่อนดีกว่าครับ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#3

by duangneth.ko » Mon Dec 05, 2011 5:31 pm

ถึง คุณคนควน

ดิฉันต้องขอโทษด้วยค่ะ แต่ดิฉันไม่เคยเขียน Macro เพียงแต่ทราบว่าถ้าเขียน Macro แล้วสามารถทำได้ จึงรบกวนขอคำแนะนำจากคุณค่ะ

ขอบคุณค่ะ
จุ๊บ

Re: รบกวนสอบถามเรื่อง Macro ค่ะ

#2

by snasui » Mon Dec 05, 2011 3:05 pm

:D สิ่งที่ถามมานั้นสามารถทำการบันทึก Macro แล้วนำ Code ที่ได้มาปรับปรุงต่อไปเพื่อให้ใช้ได้กับหลาย ๆ ชีท ผู้ที่จะใช้ Macro แสดงว่าเข้าใจ สามารถปรับปรุงแก้ไขเองได้บ้าง จึงควรเขียนมาเองครับ ติดขัดตรงไหนก็ถามมาได้เรื่อย ๆ ครับ

รบกวนสอบถามเรื่อง Macro ค่ะ

#1

by duangneth.ko » Mon Dec 05, 2011 1:05 pm

ถึง คุณคนควน

หากข้อมูลเรามีบรรทัดจำนวนมากและมีหลาย sheet แต่บางบรรทัดไม่มีตัวเลข ซึ่งเราต้องการเขียน macro เพื่อให้ลบบรรทัดที่ไม่มีตัวเลขออก เพื่อให้การทำงานเร็วขึ้น เราต้องทำอย่างไรค่ะ ?? รบกวนขอคำแนะนำดังนี้ค่ะ
1. ต้องการ macro เพื่อลบบรรทัดที่ไม่มีตัวเลขเพื่อความรวดเร็วค่ะ
2. ต้องการ macro เพื่อซ่อนแถวที่ไม่มีตัวเลขเพื่อความรวดเร็วค่ะ
3. ต้องการ macro เพื่อโชว์แถวที่ซ่อนไว้ทั้งหมดค่ะ

ขอบคุณค่ะ
Duangneth Ko,

Top