: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

สอบทราบการใช้ Box

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

สอบทราบการใช้ Box

#1

Post by yodpao.b »

การใช้ Box
Capture01.JPG
จากรูป
ในวงกลมสีแดง ช่วงข้อมูลเข้า คือ DATA!Q2:Q13 แต่ในในบางครั้ง ข้อมูลจะมีแค่ DATA!Q2:Q4 ดังรูปที่แสดงด้านล่าง
Capture02.JPG
จะเห็นว่ามีช่วงด้านล่างของ Box ว่าง
คำถาม จะใช้คำสั่งอะไรครับ ที่จะให้ box มันเห็นแค่ข้อมูลที่มีอยู่
เพราะในบางครั้งข้อมูลมีหลายบรรทัด บางครั้งก็มีน้อยบรรทัด

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#2

Post by snasui »

:D ใช้ Range Name เข้ามาช่วยได้ครับ
  1. กดแป้น Alt+I,N,D กรณี Version 2007+ ให้คลิก New
  2. ช่อง Name: คีย์ ListName
  3. ช่อง Refers to: คีย์สูตร =OFFSET(DATA!$Q$2,0,0,COUNTA(DATA!$Q$2:$Q$100)) > OK
  4. ที่ ช่วงข้อมูลเข้าตามภาพที่แนบมาให้เปลี่ยนเป็น ListName > OK
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#3

Post by yodpao.b »

ครับขอบคุณมาก
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#4

Post by yodpao.b »

กล่อง "ชนิดหลอดด้านบน"
ในตอนแรกว่าง เมื่อคลิกให้มันทำงานแล้วตัวหนังสือขึ้นมาแล้ว หลังจากเสร็จขั้นตอนนี้แล้ว
มันสามรถไปสั่งให้ VBA ทำงานต่อได้ไม่ครับ เช่นสั่งให้ VBA ไปพิมพ์เลข 1-10
ผมลองเขียนโคดแต่ติดที่ว่า box นี้มันไม่มีชื่อครับ
คำถาม มันสามรถส่งให้ VBA ทำงานได้หรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#5

Post by snasui »

:D หากต้องการทราบว่าเพียงว่าสั่งให้ Macro ทำงานได้หรือไม่ได้ คำตอบคือสามารถสั่งให้ทำงานได้ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#6

Post by yodpao.b »

การจะเขียน Code กล่อง "ชนิดหลอดด้านบน"ต้องมีชื่อเรียก
เราจะรู้ชื่อ กล่อง "ชนิดหลอดด้านบน" ได้อย่างไรครับ
ท่านอาจารย์ลองแนะนำ Code ให้ด้วยนะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#7

Post by snasui »

:D Code ต้องเขียนมาเองก่อนผมจึงจะแนะนำให้ได้ว่าต้องเขียนอย่างไร ตามกฎข้อ 5 ด้านบนครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#8

Post by yodpao.b »

ถ้าอย่างนั้น เราจะทรราบชื่อ ของกล่อง ได้จากตรงไหนครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#9

Post by snasui »

:D กดแป้น Ctrl แล้วคลิกที่ Object จากนั้นสังเกตที่ Name Box ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#10

Post by yodpao.b »

Capture1.PNG

Code: Select all

Sub MacroWatt()
    Sheets("DATA").Select
        If Range("J2") <> "" Then
            Range("B16") = Range("J3")
            'Call MacroAdvancedFilter
            'Call MacroClearFilter
        End If
End Sub
จากรูปด้านบน เซล j3 จะว่าง
เมื่อคลิก box "เลือกชนิดหลอด"แล้ว ข้อมูล จะส่งมาที่ J3 เป็นตัวเลข
พอ เซล j3 มีตัวเลขขึ้น ในตอนนี้อยากให้ VBA ทำงานครับ code อยู่ด้านบนครับ

ถ้าสั่ง รันโคด ก็จะทำงานปกติ
แต่ถ้าคลิกเลือกชนิดของหลอด VBA ไม่ทำงานครับ
(น่าจะเป็นที่ไม่มีอะไรโยงไปหาcodeนั้น)
ช่วยแก้ไขให้ด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#11

Post by snasui »

yodpao.b wrote:พอ เซล j3 มีตัวเลขขึ้น ในตอนนี้อยากให้ VBA ทำงานครับ
:D เข้า VBE แล้วดับเบิ้ลคลิกชีทปัจจุบันที่วาง Control > นำ Code นี้ไปวาง จากนั้นปรับใช้ตามต้องการครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "J3" Then
        'Your code
    End If
End Sub
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#12

Post by yodpao.b »

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address(0, 0) = "J2" Then
        Range("B16") = Range("J3")
        Call MacroAdvancedFilter
        Call MacroClearFilter
    End If
End Sub
จาก code ด้านบน เมื่อ j2 มีการเปลี่ยนแปลงในเซล code จะทำงาน (เมื่อพิมพ์ค่าไปใน J2)
แต่ผมไม่ได้พิมพ์ ขั้นตอน คือ กล่อง box "เลือกชนิดหลอด" ส่งตัวเลขไปที่ j2 แล้ว ที่ j2 มีการเปลี่ยนแปลง แต่ code ไม่ทำงานต่อครับ จะให้โคดทำได้อย่างไร

ขออนุญาติแนบไฟล์ประกอบครับ
หน้าแรกเป็น ให้กรอกครับ
ส่วนหน้า 2 เป็นที่เก็บข้อมูลครับ
You do not have the required permissions to view the files attached to this post.
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#13

Post by yodpao.b »

yodpao.b wrote:

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address(0, 0) = "J2" Then
        Range("B16") = Range("J3")
        Call MacroAdvancedFilter
        Call MacroClearFilter
    End If
End Sub
จาก code ด้านบน เมื่อ j2 มีการเปลี่ยนแปลงในเซล code จะทำงาน (เมื่อพิมพ์ค่าไปใน J2)
แต่ผมไม่ได้พิมพ์ ขั้นตอน คือ กล่อง box "เลือกชนิดหลอด" ส่งตัวเลขไปที่ j2 แล้ว ที่ j2 มีการเปลี่ยนแปลง แต่ code ไม่ทำงานต่อครับ จะให้โคดทำได้อย่างไร
Capture2.PNG
ขออนุญาติแนบไฟล์ประกอบครับ
หน้าแรกเป็น ให้กรอกครับ
ส่วนหน้า 2 เป็นที่เก็บข้อมูลครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#14

Post by snasui »

:D คลิกขวาที่ ComboBox > Assign Macro > New > โปรแกรมจะสร้าง Procedure มาให้ สามารถนำ Code ไปใส่ได้ตามต้องการครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#15

Post by yodpao.b »

ใช่เลยครับแบบนี้ละครับที่ต้องการ
ขอบคุณมากครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#16

Post by yodpao.b »

snasui wrote:ช่อง Refers to: คีย์สูตร =OFFSET(DATA!$Q$2,0,0,COUNTA(DATA!$Q$2:$Q$100)) > OK
อาจารย์ได้แนะนำให้ใช้สูตรแบบด้านบน
H2.JPG
ต้องการให้แสดงผลตามรูปด้านบนครับ

H1.JPG
จากรูปดานบน
ช่อง Refers to: คีย์สูตร=OFFSET(DATA0!$H$10,0,0,COUNTA(DATA0!$H$10:$H$49))แล้วครับ
สาเหตุเกิดจากค่าว่างนั้นเป็นสูตร "" ครับ ดังนี้ ในช่อง H12:40 นั้นใช้สูตร
{=IF(ROWS(H$10:H12)>COUNTIF(data_inverter!$D$8:$D$215,$A$6),"",INDEX(data_inverter!R$8:R$215,SMALL(IF(data_inverter!$D$8:$D$215=$A$6,ROW(data_inverter!$A$8:$A$215)-ROW(data_inverter!$A$8)+1),ROWS(H$10:H12))))}
H10.JPG
จะแก้ไขต้องจุดไหนดีครับ
You do not have the required permissions to view the files attached to this post.
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#17

Post by yodpao.b »

แนบไฟล์
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: สอบทราบการใช้ Box

#18

Post by DhitiBank »

ใน refer to: ตรง COUNTA(DATA0!$H$10:$H$49) ลองเปลี่ยนเป็น

countif(DATA0!$H$10:$H$49,"*?")

ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: สอบทราบการใช้ Box

#19

Post by yodpao.b »

11.JPG
ได้ทดลองทำแล้วครับ
ใน refer to: =OFFSET('CAL2'!$H$10,0,0,COUNTIF('CAL2'!$H$10:$H$49,"*?"))
ผลที่ได้ไม่โชว์ค่าครับดังรูปด้านล่างครับ ยังไม่ถูกต้องครับไม่รู้ว่าผมทำผิดขั้นตอนหรือไม่
10.JPG

ไฟล์ที่แนบครั้งที่แล้วขาดไปหน้าหนึ่งครับขอโทษ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบทราบการใช้ Box

#20

Post by snasui »

:D ปรับสูตรใหม่เป็นด้านล่างครับ

=OFFSET('CAL2'!$H$10,0,0,COUNT('CAL2'!$H$10:$H$49))
Post Reply