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

กรุณาอธิบายมาใหม่อีกรอบครับ
ต้องการจะทำอะไร ที่ชีตไหน เซลล์ไหน ค่าเดิมเป็นเท่าใด ต้องการให้เป็นเท่าใด 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

กรุณาอธิบายมาใหม่อีกรอบครับ
ต้องการจะทำอะไร ที่ชีตไหน เซลล์ไหน ค่าเดิมเป็นเท่าใด ต้องการให้เป็นเท่าใด 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

แถมอีกตัวอย่าง 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

แถมอีกตัวอย่าง 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
ขอบคุณครับอาจารย์ บอร์ดนี้ทำให้เป็นอะไรในหลายๆอย่าง แต่ก็ยังขาดประสบการณ์ ขอบคุณมากๆครับ