Page 1 of 1

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

Posted: Sun Feb 11, 2018 9:01 pm
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() จะสามารถทำได้หรอไม่ครับ รบกวนอาจารย์ทุกๆท่านด้วยครับ

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

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

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

การตัดคำใช้ได้หลายฟังก์ชั่นขึ้นอยู่กับปัญหา สำหรับ Mid ใช้ในการตัดอักขระมาจำนวนเท่าที่ต้องการครับ

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

Posted: Sun Feb 11, 2018 9:41 pm
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

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

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

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

การตัดคำใช้ได้หลายฟังก์ชั่นขึ้นอยู่กับปัญหา สำหรับ Mid ใช้ในการตัดอักขระมาจำนวนเท่าที่ต้องการครับ
ขอบคุณมากครับอาจารย์ ผมจะปรับปรุงครับ

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

Posted: Sun Feb 11, 2018 9:58 pm
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
ขอบคุณครับพี่ เดียวผมลองดูครับ

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

Posted: Sun Feb 11, 2018 10:47 pm
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 อย่าง คือ พอผมเปลี่ยนข้อความ มันไม่ยอมเปลี่ยนการแสดงผลให้ผมครับ มันเปลี่ยนแต่เปอร์เซ็น ผม งง มากเลย

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

Posted: Sun Feb 11, 2018 11:05 pm
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

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

Posted: Mon Feb 12, 2018 9:34 am
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
ขอบคุณอีกครั้งครับ

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

Posted: Mon Feb 12, 2018 7:54 pm
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

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

Posted: Mon Feb 12, 2018 7:55 pm
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

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

Posted: Tue Feb 13, 2018 12:43 pm
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
ขอบคุณครับพี่

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

Posted: Tue Feb 13, 2018 12:43 pm
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
ขอบคุณครับอาจารย์ บอร์ดนี้ทำให้เป็นอะไรในหลายๆอย่าง แต่ก็ยังขาดประสบการณ์ ขอบคุณมากๆครับ