: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

สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#1

Post by jullathep »

Code: Select all

Private Sub CommandButton1_Click()
TextBox1.Text = " "
remain = Mid(TextBox1.Text, 4, 2)
Label1.Caption = "แคลเซียม (Cao) .................................................... 5%"
End Sub
อยากสอบถามว่า ถ้าผมต้องการ ให้การแสดงผลของเปอร์เซ็น เปลี่ยน ไปตามการกรอกของข้อมูล อาทิ เช่น เมื่อกรอกข้อมูล
CaO5% แสดงผล แคลเซียม (Cao) ..................................................................... 5%
CaO0.7% แสดงผล แคลเซียม (Cao) ..................................................................... 0.7%
CaO1.2% แสดงผล แคลเซียม (Cao) ..................................................................... 1.2%
อยากทราบวิธีการกำหนดค่าที่จะแสดงผลเฉพาะ % ตอนท้ายของข้อมูลที่เปลี่ยนไปตามการกรอกข้อมูลเปี่ลยนเฉพาะ %
แต่คงไว้ซึ่ง แคลเซียม (CaO)
ผมไปหาข้อมูลตามเว็บเห็นเขาว่าให้ใช้ Mid() จะสามารถทำได้หรอไม่ครับ รบกวนอาจารย์ทุกๆท่านด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#2

Post by snasui »

:D กรุณาอธิบายมาใหม่อีกรอบครับ

ต้องการจะทำอะไร ที่ชีตไหน เซลล์ไหน ค่าเดิมเป็นเท่าใด ต้องการให้เป็นเท่าใด Code ที่เขียนมาเองแล้วนั้นไม่ได้สื่อให้เข้าใจว่าต้องการจะทำอะไร เป็น Code ตัวอย่างที่แสดงค่าทดสอบใน Label เท่านั้น

การตัดคำใช้ได้หลายฟังก์ชั่นขึ้นอยู่กับปัญหา สำหรับ Mid ใช้ในการตัดอักขระมาจำนวนเท่าที่ต้องการครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3712
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#3

Post by puriwutpokin »

ตามอาจารย์คนควน แจ้งครับ ควรชี้แจ้งให้ชัดเจนครับ ผมเดาๆ เอาก็ไม่รู้ว่าใช่ตามที่ต้องการหรือไม่ลองดูถ้าไม่ใช่ก็ทำตามที่อาจารย์คนควนแจ้งครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim remain As String
If TextBox1.Text <> "" Then
remain = Mid(TextBox1.Text, 4, 4)
Label1.Caption = "แคลเซียม (Cao)..................................................................... " & remain
End If
End Sub
Last edited by puriwutpokin on Sun Feb 11, 2018 10:07 pm, edited 1 time in total.
:shock: :roll: :D
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#4

Post by jullathep »

snasui wrote: Sun Feb 11, 2018 9:29 pm :D กรุณาอธิบายมาใหม่อีกรอบครับ

ต้องการจะทำอะไร ที่ชีตไหน เซลล์ไหน ค่าเดิมเป็นเท่าใด ต้องการให้เป็นเท่าใด Code ที่เขียนมาเองแล้วนั้นไม่ได้สื่อให้เข้าใจว่าต้องการจะทำอะไร เป็น Code ตัวอย่างที่แสดงค่าทดสอบใน Label เท่านั้น

การตัดคำใช้ได้หลายฟังก์ชั่นขึ้นอยู่กับปัญหา สำหรับ Mid ใช้ในการตัดอักขระมาจำนวนเท่าที่ต้องการครับ
ขอบคุณมากครับอาจารย์ ผมจะปรับปรุงครับ
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#5

Post by jullathep »

puriwutpokin wrote: Sun Feb 11, 2018 9:41 pm ตามอาจารย์คนควร แจ้งครับ ควรชี้แจ้งให้ชัดเจนครับ ผมเดาๆ เอาก็ไม่รู้ว่าใช่ตามที่ต้องการหรือไม่ลองดูถ้าไม่ใช่ก็ทำตามที่อาจารย์คนควนแจ้งครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim remain As String
If TextBox1.Text <> "" Then
remain = Mid(TextBox1.Text, 4, 4)
Label1.Caption = "แคลเซียม (Cao)..................................................................... " & remain
End If
End Sub
ขอบคุณครับพี่ เดียวผมลองดูครับ
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#6

Post by jullathep »

jullathep wrote: Sun Feb 11, 2018 9:58 pm
puriwutpokin wrote: Sun Feb 11, 2018 9:41 pm ตามอาจารย์คนควร แจ้งครับ ควรชี้แจ้งให้ชัดเจนครับ ผมเดาๆ เอาก็ไม่รู้ว่าใช่ตามที่ต้องการหรือไม่ลองดูถ้าไม่ใช่ก็ทำตามที่อาจารย์คนควนแจ้งครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim remain As String
If TextBox1.Text <> "" Then
remain = Mid(TextBox1.Text, 4, 4)
Label1.Caption = "แคลเซียม (Cao)..................................................................... " & remain
End If
End Sub
ขอบคุณครับพี่ เดียวผมลองดูครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
If TextBox1.Text <> "" Then
            percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แคลเซียม (Cao)..................................................................... " & percen
ElseIf TextBox1.Text <> "" Then
            percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แมกนีเซียม (MgO)..................................................................... " & percen
End If
End Sub
แบบนี้ใช่เลยครับพี่ แต่ผมติดอีก 1 อย่าง คือ พอผมเปลี่ยนข้อความ มันไม่ยอมเปลี่ยนการแสดงผลให้ผมครับ มันเปลี่ยนแต่เปอร์เซ็น ผม งง มากเลย
User avatar
puriwutpokin
Guru
Guru
Posts: 3712
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#7

Post by puriwutpokin »

ปรับเป็น

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
percen = Mid(TextBox1.Text, 4, 4)
If TextBox1.Text = "Cao" & percen Then
            'percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แคลเซียม (Cao)..................................................................... " & percen
ElseIf TextBox1.Text = "MgO" & percen Then
            'percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แมกนีเซียม (MgO)..................................................................... " & percen
End If
End Sub
:shock: :roll: :D
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#8

Post by jullathep »

puriwutpokin wrote: Sun Feb 11, 2018 11:05 pm ปรับเป็น

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
percen = Mid(TextBox1.Text, 4, 4)
If TextBox1.Text = "Cao" & percen Then
            'percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แคลเซียม (Cao)..................................................................... " & percen
ElseIf TextBox1.Text = "MgO" & percen Then
            'percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แมกนีเซียม (MgO)..................................................................... " & percen
End If
End Sub
ขอบคุณครับพี่ใช้ได้เลยครับ ผมขอเพืิ่มเติมอีกนิดครับ ในกรณีที่เป็นแร่ธาตุ 2ตัวอักษร และ 1ตัวอักษร ผมไม่สามารถเรียกมันออกมาได้รบกวนช่วยดูอีกสักครั้งครับพี่ ขอบคุณครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
percen = Mid(TextBox1.Text, 4, 4)
If TextBox1.Text = "CaO" & percen Then
            'percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แคลเซียม (CaO) ..................................................................... " & percen
ElseIf TextBox1.Text = "MgO" & percen Then
           ' percen = Mid(TextBox1.Text, 4, 4)
            Label1.Caption = "แมกนีเซียม (MgO) ..................................................................... " & percen
ElseIf TextBox1.Text = "Zn" & percen Then
           ' percen = Mid(TextBox1.Text, 3, 3)
            Label1.Caption = "สังกะสี (Zn) ..................................................................... " & percen
ElseIf TextBox1.Text = "B" & percen Then
            'percen = mid(textbox1.text, 2, 2)
            Label1.Caption = "โบรอน (B) ..................................................................... " & percen
End If
End Sub
ขอบคุณอีกครั้งครับ
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3712
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#9

Post by puriwutpokin »

ตัวอย่างโค้ดครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
Dim per(1 To 4) As String
per(1) = "CaO"
per(2) = "MgO"
per(3) = "Zn"
per(4) = "B"
For i = 1 To 4
percen = WorksheetFunction.Substitute(TextBox1.Text, per(i), "")
If TextBox1.Text = per(1) & percen Then
            Label1.Caption = "แคลเซียม (CaO) ..................................................................... " & percen
            End If
If TextBox1.Text = per(2) & percen Then
            Label1.Caption = "แมกนีเซียม (MgO) ..................................................................... " & percen
            End If
If TextBox1.Text = per(3) & percen Then
            Label1.Caption = "สังกะสี (Zn) ..................................................................... " & percen
            End If
If TextBox1.Text = per(4) & percen Then
            Label1.Caption = "โบรอน (B) ..................................................................... " & percen
End If
Next
End Sub
:shock: :roll: :D
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#10

Post by snasui »

:D แถมอีกตัวอย่าง Code ครับ

Code: Select all

Dim i As Integer, s As String, v As String
With TextBox1
    i = Len(.Text) - 1
    If Left(.Text, 3) = "CaO" Then
        s = "แคลเซียม (CaO) ":  v = Mid(.Text, 4, i - 3)
    ElseIf Left(.Text, 3) = "MgO" Then
         s = "แมกนีเซียม (MgO) ":  v = Mid(.Text, 4, i - 3)
    ElseIf Left(.Text, 2) = "Zn" Then
         s = "สังกะสี (Zn) ":   v = Mid(.Text, 3, i - 2)
    ElseIf Left(.Text, 1) = "B" Then
        s = "โบรอน (B) ": v = Mid(.Text, 2, i - 1)
    End If
    Label1.Caption = s & String(70, ".") & v & "%"
End With
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#11

Post by jullathep »

puriwutpokin wrote: Mon Feb 12, 2018 7:54 pm ตัวอย่างโค้ดครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim percen As String
Dim per(1 To 4) As String
per(1) = "CaO"
per(2) = "MgO"
per(3) = "Zn"
per(4) = "B"
For i = 1 To 4
percen = WorksheetFunction.Substitute(TextBox1.Text, per(i), "")
If TextBox1.Text = per(1) & percen Then
            Label1.Caption = "แคลเซียม (CaO) ..................................................................... " & percen
            End If
If TextBox1.Text = per(2) & percen Then
            Label1.Caption = "แมกนีเซียม (MgO) ..................................................................... " & percen
            End If
If TextBox1.Text = per(3) & percen Then
            Label1.Caption = "สังกะสี (Zn) ..................................................................... " & percen
            End If
If TextBox1.Text = per(4) & percen Then
            Label1.Caption = "โบรอน (B) ..................................................................... " & percen
End If
Next
End Sub
ขอบคุณครับพี่
jullathep
Member
Member
Posts: 148
Joined: Fri Feb 02, 2018 1:56 pm

Re: สอบถามเกี่ยวกับการใช้ Mid() เพื่อกำหนดค่าที่จะแสดง

#12

Post by jullathep »

snasui wrote: Mon Feb 12, 2018 7:55 pm :D แถมอีกตัวอย่าง Code ครับ

Code: Select all

Dim i As Integer, s As String, v As String
With TextBox1
    i = Len(.Text) - 1
    If Left(.Text, 3) = "CaO" Then
        s = "แคลเซียม (CaO) ":  v = Mid(.Text, 4, i - 3)
    ElseIf Left(.Text, 3) = "MgO" Then
         s = "แมกนีเซียม (MgO) ":  v = Mid(.Text, 4, i - 3)
    ElseIf Left(.Text, 2) = "Zn" Then
         s = "สังกะสี (Zn) ":   v = Mid(.Text, 3, i - 2)
    ElseIf Left(.Text, 1) = "B" Then
        s = "โบรอน (B) ": v = Mid(.Text, 2, i - 1)
    End If
    Label1.Caption = s & String(70, ".") & v & "%"
End With
ขอบคุณครับอาจารย์ บอร์ดนี้ทำให้เป็นอะไรในหลายๆอย่าง แต่ก็ยังขาดประสบการณ์ ขอบคุณมากๆครับ
Post Reply