Page 1 of 1

ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้วยVBA

Posted: Fri Mar 29, 2013 9:02 pm
by akung

Code: Select all

Sub ChagetoUpper()
    Dim r As Range
    Dim i As Integer
    For i = 1 To Worksheets.Count
      For Each r In Worksheets(i).UsedRange
        r = UCase(r)
      Next r
    Next i
End Sub
จากสูตรของอาจารย์ สูตรนี้มันจะเปลี่ยนทั้ง Worksheets เลย แต่ถ้าต้องการเปลี่ยนแค่ช่องที่เราพิมพ์หรือ Column ที่เราพิมพ์จะต้องเขียนแก้ไข Code อย่างไรครับ แล้ว UCase หมายความว่าอย่างไรครับขอบคุณครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 10:05 pm
by snasui
:D Code ที่มาถามกันควรเป็น Code ที่ลองปรับเองดูแล้วติดปัญหา

Code ต้นฉบับที่ยกมานั้นมีความมุ่งหมายให้เปลี่ยนทั้งไฟล์ก็เลยเป็น Code เช่นนั้น กรณีต้องการให้เปลี่ยนเพียงพื้นที่ใดพื้นที่หนึ่งก็ต้องปรับใหม่ครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 10:39 pm
by akung
คือผมไม่รู้คำสั่งที่ทำให้เปลี่ยนจากตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ครับ เลยไม่รู้จะเริ่มอย่างไร แต่ถ้าได้คำสั่งให้เปลี่ยนจากตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ได้ ผมก็จะไปต่อได้ครับ รบกวนอาจารย์ใบ้ให้สักนิดได้ไหมครับ ขอบคุณครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 10:51 pm
by snasui
:shock: r = UCase(r) :arl: นี่คือ Code ที่เปลี่ยนค่าตัวแปร r เป็นตัวพิมพ์ใหญ่ครับ

ถ้าหากเป็น range("a1") = ucase(range("a1") หมายถึงให้เปลี่ยน A1 เป็นตัวพิมพ์ใหญ่ครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 10:52 pm
by akung

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rCheck As Range
    
    If Target.Column = 2 Then
        Set rCheck = Target.Offset(-1, -1)
        UCase (rCheck)
        MsgBox (rCheck)
    End If
End Sub
ผมคิดว่าน่าจะได้แล้ว แต่ไม่ผ่านสักทีครับ รบกวนด้วยครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 10:56 pm
by snasui
:D จาก UCase(rCheck) เปลี่ยนเป็น rCheck = UCase(rCheck)

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Fri Mar 29, 2013 11:03 pm
by akung

Code: Select all

Target.Offset(0, 0) = UCase(rCheck)
ขอบคุณครับอาจารย์ ตอนแรกผมใช้ Code แบบนี้ พอเข้ามาเห็นของอาจารย์ ถึงก็บางอ้อครับ ขอบคุณอีกครั้งครับ :thup:

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Sat Mar 30, 2013 8:39 am
by akung
รบกวนสอบถามเพิ่มเติมครับ

ถ้าผมต้องการเปลี่ยนเฉพาะตัวอักษรแรกให้เป็นพิมพ์ใหญ่ต้องใช้คำสั่งอะไรครับ ขอบคุณครับ

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Sat Mar 30, 2013 8:41 am
by snasui
:D ดูได้ที่ Link นี้ครับ wordpress/?p=379

Re: ต้องการเปลี่ยน Column C ให้เป็นภาษาอังกฤษตัวพิมพ์ใหญ่ด้ว

Posted: Sun Mar 31, 2013 9:55 pm
by akung
snasui wrote::D ดูได้ที่ Link นี้ครับ wordpress/?p=379
ขอบคุณอาจารย์มากครับ ทำได้แล้วครับ