Page 1 of 1

ตัดตัวอักษร1ตัวด้านขวา

Posted: Tue Sep 13, 2016 10:54 am
by sooksun2009
รบกวนอาจารย์ ช่วยแนะนำเรื่องการตัดตัวอักษรด้านขวาสุด1ตัว ในcolume B คือ ผมใช้ปืนบาร์โค๊ดยิง แต่อักษรจะเพิ่มมา1ตัวทุกครั้ง ผมต้องการยิงเสร็จแล้วได้ตัวษรครบทุกตัว ตาม file แนบ ขอบคุณครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Tue Sep 13, 2016 3:42 pm
by DhitiBank
งงนิดหน่อยครับ

ปกติแล้ว รหัสที่ได้จากการอ่านบาร์โค้ดจะมี 17 หลักหรือเปล่าครับ (เห็นข้อมูลบางแถวมี 17 อักขระ) หากต้องการแค่ 17 ตัวเท่านั้น ลองแบบนี้ครับ

C3
=IF(LEN(B3)<>17,LEFT(B3,17),B3)
Enter >> คัดลอกลงล่างครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Tue Sep 13, 2016 6:37 pm
by sooksun2009
ขอบคุณครับ คุณ DhitiBank แต่ผมต้องการให้ตัดอักษรตรง colume B เรยครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Tue Sep 13, 2016 6:55 pm
by snasui
sooksun2009 wrote:ขอบคุณครับ คุณ DhitiBank แต่ผมต้องการให้ตัดอักษรตรง colume B เรยครับ
:D คำที่ผมระบายสีไว้ผิดกฎข้อ 1 ด้านบน ระมัดระวังด้วยครับ

กรุณาโพสต์ใหม่ให้เป็นไปตามกฎการใช้บอร์ดครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 7:21 am
by sooksun2009
ขอโทษครับ แต่ผมต้องการให้ตัดอักษรตรง colume B เลยครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 10:52 am
by puriwutpokin
คงต้องใช้ VBA ช่วยครับ ลองเขียนมาก่อนตาม กฏข้อ5 แล้วติดขัดอย่างไง เพื่อนๆ จะได้ช่วยแก้ไขให้ครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 12:47 pm
by puriwutpokin
ลองดูตามลิงค์นี้ครับ http://www.mrexcel.com/forum/excel-ques ... ssage.html

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 2:33 pm
by sooksun2009

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If ActiveCell.Column = 2 Then Range("F" & Target.Row) = Time()
If ActiveCell.Column = 4 Then Range("G" & Target.Row) = Time()
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    
Dim Reason As String

Reason = ActiveCell.Text


    If Not Intersect(Target, Range("b:b")) Is Nothing Then
         
          ActiveCell = Left(Reason, 17)

    
    End If

End Sub
รันแล้วเออเร่อเพราะต้องใช้คู่กับcode ลงเวลาด้วยครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 2:49 pm
by puriwutpokin
ปรับเป็น

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
          Target = Left(Target, 17)
    End If
End Sub

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 3:55 pm
by sooksun2009
ติดปัญหากับ code ตัวเก่า

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If ActiveCell.Column = 2 Then Range("F" & Target.Row) = Time()
If ActiveCell.Column = 4 Then Range("G" & Target.Row) = Time()
Application.EnableEvents = True
End Sub
ถ้าเพิ่ม code นี้ไป

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
          Target = Left(Target, 17)
    End If
End Sub

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 4:01 pm
by puriwutpokin
แนบไฟล์มาดูครับ ต้องตัด Private Sub Worksheet_Change(ByVal Target As Range) ออกอันหนี่งครับ แนบไฟล์มาดูครับ
ปรับเป็น

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If ActiveCell.Column = 2 Then Range("F" & Target.Row) = Time()
If ActiveCell.Column = 4 Then Range("G" & Target.Row) = Time()
    If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
          Target = Left(Target, 17)
    End If
Application.EnableEvents = True
End Sub

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 4:11 pm
by puriwutpokin
ปรับอีกแบบครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If ActiveCell.Column = 2 Then Range("F" & Target.Row) = Time()
If ActiveCell.Column = 4 Then Range("G" & Target.Row) = Time()
If ActiveCell.Column = 2 Then
          Target = Left(Target, 17)
    End If
Application.EnableEvents = True
End Sub

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 4:55 pm
by menem
ถ้ายืนยันว่า Barcode ถูกต้อง แต่เมื่อ Scan แล้วมีตัวอักษรติดเกินมา
วิธีที่อาจจะดีกว่าคือ หาวิธีการตั้งค่าตัว Scanner ให้ถูกต้องครับ
เพราะถ้าตั้งค่าผิด สิ่งที่ได้ก็จะไม่ตรงกับที่ต้องการ

ต้องขออภัยด้วยครับที่คำตอบนี้ไม่ได้เกี่ยวกับ Excel.

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 5:14 pm
by sooksun2009
ขอคุณครับ

Re: ตัดตัวอักษร1ตัวด้านขวา

Posted: Thu Sep 15, 2016 5:17 pm
by sooksun2009
ขอบคุณครับ คุณ puriwutpokin ได้แล้วครับ