Page 1 of 1

ช่วยปรับสูตรให้หน่อยครับ

Posted: Wed Jun 08, 2022 9:45 pm
by yangkodza

Code: Select all

' Range("A4:E4").Resize(20, 5).Formula = "='" & CurrDir & "\" & fileName & "'!ห้อง" & Classroom & "เทอม1"       อันนี้ทำงานได้ปกติ
Range("A4:E4").Resize(20, 5).Formula = "='" & CurrDir & "\" & fileName & "'!สรุป1A1:E113"  ' ปรับล้อมา จะเอาเป็น ชีท สรุป1 A1:E113  ยังงัยครั
จากสูตรบรรทัดบนใช้งานได้ตามปกติ
ผมอยากปรับล้อมาเป็นบรรทัดล่างครับ โดยให้อ้างอิงตามที่เราระบุแทนไม่ต้องผ่านตัวแปร
ในที่นี้ให้อ้างอิงไปที ชีตสรุป1 เซลล์ A1:E113 ครับ
รบกวนช่วยชี้แนะด้วยครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Thu Jun 09, 2022 8:51 am
by snasui
:D ลองปรับจาก "'!สรุป1A1:E113" เป็น "สรุป1'!A1:E113" ดูครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Fri Jun 10, 2022 10:55 pm
by yangkodza
snasui wrote: Thu Jun 09, 2022 8:51 am :D ลองปรับจาก "'!สรุป1A1:E113" เป็น "สรุป1'!A1:E113" ดูครับ
ตอนนี้ผมปรับเป็นแบบนี้ครับ

Code: Select all

Sub ดึงไฟล์ฐานข้อมูล()
    Dim FileToOpen As Variant
    Dim OpenBook As Workbook
    Application.ScreenUpdating = False
    FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range", FileFilter:="Excel Files (*.xls*),*xls*")
    If FileToOpen <> False Then
        Set OpenBook = Application.Workbooks.Open(FileToOpen)
        OpenBook.Sheets(1).Range("A1:E113").Copy
        ThisWorkbook.Worksheets("ฐานข้อมูลรายวัน").Range("A1").PasteSpecial xlPasteValues
        OpenBook.Close False
        Range("A2:A3").Select
    Selection.AutoFill Destination:=Range("A2:A112")
    Range("A2:A112").Select
    Range("A2").Select
        Sheets("ใบลงเวลาทำงาน").Select
    ActiveWindow.SmallScroll Down:=-27
    Range("I7:I117").Select
    Selection.ClearContents
    Range("A1:J1").Select
        Range("A1").Select
    End If
    Application.ScreenUpdating = True
End Sub
แต่พบปัญหา ดังนี้
1. ตัวไฟล์ต้นฉบับ เป็น 97-2003 ถ้าเปิดต้นฉบับโดยตรง Code จะ error ดังภาพ
Capture01.PNG
2. ต้องแปลงไฟล์ให้เป็น XLSX (มีวิธีเปิดตรงๆโดยไม่ต้องแปลงไหมครับ)
แต่ก็ยังเจอ ข้อความนี้อยู่ ดังภาพ
Capture.PNG
ตัวไฟล์งานหลักคือ ไฟล์ใบลงเวลาทำงาน
ที่แผ่นงาน ฐานข้อมูลรายวัน จะมีปุ่ม มาโคร ไว้ดึงงานครับ
สอบถามอาจารย์.rar

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 6:09 am
by snasui
:D ไฟล์นามสกุล .xls เป็นไฟล์เสียหาย ไม่สามารถเข้าถึงเนื้อไฟล์ได้ครับ

สำหรับการปรับ Code ไม่ให้ฟ้องของ Clipboard สามารถเปลี่ยนการ Copy ไปเป็นด้านล่างครับ

Code: Select all

'Other code
'        OpenBook.Sheets(1).Range("A1:E113").Copy
'        ThisWorkbook.Worksheets("ฐานข้อมูลรายวัน").Range("A1").PasteSpecial xlPasteValues
        ThisWorkbook.Worksheets("ฐานข้อมูลรายวัน").Range("a1:e113").Value = OpenBook.Sheets(1).Range("a1:e113").Value
'Other code

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 9:28 am
by yangkodza
snasui wrote: Sat Jun 11, 2022 6:09 am :D ไฟล์นามสกุล .xls เป็นไฟล์เสียหาย ไม่สามารถเข้าถึงเนื้อไฟล์ได้ครับ

สำหรับการปรับ Code ไม่ให้ฟ้องของ Clipboard สามารถเปลี่ยนการ Copy ไปเป็นด้านล่างครับ

Code: Select all

'Other code
'        OpenBook.Sheets(1).Range("A1:E113").Copy
'        ThisWorkbook.Worksheets("ฐานข้อมูลรายวัน").Range("A1").PasteSpecial xlPasteValues
        ThisWorkbook.Worksheets("ฐานข้อมูลรายวัน").Range("a1:e113").Value = OpenBook.Sheets(1).Range("a1:e113").Value
'Other code
สำหรับไฟล์ .xls ok ครับผมคงต้องแปลงต่อไป
แต่ตัว Code ไม่ให้ฟ้องของ Clipboard ข้อมูลไปครับ แต่ติดปัญหาแปลกๆ ตรงวันที่ ทุกไฟล์ตีกลับเป็น 6/7/2022 แต่ข้อมูลส่วนอื่นๆไปครบครับ เปิดเทียบไฟล์ต้นฉบับ(วันที่ต้นฉบับก็ถูกครับ)

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 12:28 pm
by snasui
:D วันที่ดังกล่าวอยู่ ณ ตำแหน่งใด อยู่ในของเขตของ A1:E113 หรือไม่ หากไม่อยู่ก็จะไม่ถูกนำค่าไปใช้ แต่หากอยู่ในขอบเขตของพื้นที่ข้างต้นค่านั้นจะถูกนำไปใช้ด้วยค่าเดียวกัน เพราะ Code ที่ใช้นั้นเป็นการกำหนดค่าปลายทางให้เท่ากับค่าต้นทางแบบตรง ๆ ครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 5:47 pm
by yangkodza
อาจารย์ครับ ผมปรับหนีจาก .xls ใช้ดึง .csv แทน ดัง code แนบ

Code: Select all

Sub ดึงฐานข้อมูล()
Dim wsheet As Worksheet, file_mrf As String
Application.ScreenUpdating = False
    Sheets("ฐานข้อมูลรายวัน").Select
Set wsheet = ActiveWorkbook.Sheets("ฐานข้อมูลรายวัน")
    Columns("A:F").Select
    Range("F1").Activate
    Selection.ClearContents
    Range("A1").Select
file_mrf = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Provide Text or CSV File:")
With wsheet.QueryTables.Add(Connection:="TEXT;" & file_mrf, Destination:=wsheet.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
    Range("A2:A3").Select
    Selection.AutoFill Destination:=Range("A2:A112")
    Range("A2:A112").Select
    Columns("A:A").Select
    Selection.NumberFormat = "General"
    Columns("E:E").Select
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
    Columns("F:F").Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("ใบลงเวลาทำงาน").Select
    Range("I7:I117").Select
    Selection.ClearContents
    Range("A7").Select
    Application.ScreenUpdating = True
End With
End Sub
มีบัคตรง 0:00 ครับ ดังภาพประกอบ
Capture01.PNG
เซลล์ดังกล่าวใช้ code

Code: Select all

=IFERROR(IF(LEN(E4)=5,"",RIGHT(E4,5)+0),"")
ส่งผลให้เซลด้านหลังไม่แสดงเป็นคำว่า ไม่รูดเข้า/ออก เนื่องจากโชว์ค่า 2 ค่า
รบกวนอาจารย์ชี้แนะให้แสดงเพียงค่าเดียว กรณีรูดครั้งเดียวด้วยครับ
สอบถามอาจารย์.rar

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 7:46 pm
by snasui
:D ที่ชีต ฐานข้อมูลรายวัน เซลล์ H2 ปรับสูตรเป็นด้านล่างครับ

=IFERROR(IF(LEN(TEXT(E2,"hh:mm"))=5,"",RIGHT(E2,5)+0),"")

Enter > Copy ลงด้านล่าง

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sat Jun 11, 2022 7:50 pm
by yangkodza
snasui wrote: Sat Jun 11, 2022 7:46 pm :D ที่ชีต ฐานข้อมูลรายวัน เซลล์ H2 ปรับสูตรเป็นด้านล่างครับ

=IFERROR(IF(LEN(TEXT(E2,"hh:mm"))=5,"",RIGHT(E2,5)+0),"")

Enter > Copy ลงด้านล่าง
สามารถใช้งานตามที่ต้องการได้แล้วครับ
ขอบคุณมากครับอาจารย์ :D

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 12:26 pm
by yangkodza
อาจารย์ครับ ผมลืมเรื่องเก็บฐานข้อมูล ผมเก็บฐานข้อมูลลงแผ่นงานสถิติ
รบกวนอาจารย์ช่วยชี้แนะด้วยครับว่าปรับ code แบบไหน ให้ข้อมูล ไปกรอกลงคอลัมน์ทางขวามือล่าสุดครับ

Code: Select all

Sub เก็บฐานข้อมูล()
Application.ScreenUpdating = False
    Sheets("ใบลงเวลาทำงาน").Select
    Range("I7:I117").Select
    Selection.Copy
    Sheets("สถิติ").Select
        Range("C2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ฐานข้อมูลรายวัน").Select
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("สถิติ").Select
    Range("C1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.NumberFormat = "[$-th-TH,107]d mmm yy;@"
    Columns("C:C").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Replace What:="ไม่รูดเข้า/ออก", Replacement:="ม", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ขาด", Replacement:="ข", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลากิจ", Replacement:="ก", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาป่วย", Replacement:="ป", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาคลอด", Replacement:="ค", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ไปราชการ", Replacement:="ร", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="สาย", Replacement:="ส", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("C1").Select
        Sheets("ใบลงเวลาทำงาน").Select
    Application.ScreenUpdating = True
End Sub

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 7:07 pm
by snasui
:D แนบไฟล์ตัวอย่างที่มี Code นี้มาด้วยจะได้สะดวกในการตอบของเพื่อนสมาชิกครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 7:29 pm
by yangkodza
snasui wrote: Sun Jun 12, 2022 7:07 pm :D แนบไฟล์ตัวอย่างที่มี Code นี้มาด้วยจะได้สะดวกในการตอบของเพื่อนสมาชิกครับ
ครับผม
สอบถามอาจารย์.rar

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 8:58 pm
by snasui
:D ช่วยอธิบายว่าต้องการจะทำอะไร มีลำดับขั้นตอนการทำงานอย่างไร ติดขัดตรงส่วนไหน อย่างไร จะได้เข้าถึงปัญหาโดยไวครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 9:09 pm
by yangkodza
snasui wrote: Sun Jun 12, 2022 8:58 pm :D ช่วยอธิบายว่าต้องการจะทำอะไร มีลำดับขั้นตอนการทำงานอย่างไร ติดขัดตรงส่วนไหน อย่างไร จะได้เข้าถึงปัญหาโดยไวครับ
จากงานดังกล่าว
1. ดึงข้อมูลจาก CSV (ผ่าน)
2. ทำการเช็คขาด ว่าขาดจากสาเหตุใด เช่น ลาป่วย ลากิจ (ตรงนี้ต้องทำมือ เพราะรอธุรการแจ้ง) (ผ่าน)
3. กลับสถานะปกติ คือปลดตัวกรองออกไป (ผ่าน)
4. ต้องการ เก็บฐานข้อมูล ลง สถิติ (ยังไม่ผ่าน)
5 พิมพ์รายงาน (ผ่าน)

จากข้อ 4. จะทำการ copy ข้อมูลจาก แผ่นงานใบลงเวลาทำงาน I7:I117 ไปไว้ที่ แผ่นงานสถิติ แถวที่ 2 โดยไปคอลัมน์ทางขวาใหม่ตลอดทุกครั้ง และ ที่ แผ่นงานสถิติ C1 ต้องมีวันที่ด้วย วันที่ อ้างอิงมาจาก แผ่นงานฐานข้อมูลรายวัน D2 ครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 9:22 pm
by snasui
:D เท่าที่สังเกตไม่ได้ทำแค่คัดลอกข้อมูลไปวาง แต่มีการเปลี่ยนค่าด้วย กรุณาอธิบายขั้นตอนการทำงานของข้อ 4 มาอย่างละเอียดพร้อมทั้งแจ้งขั้นตอนที่ยังติดปัญหามาด้วยครับ

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 9:44 pm
by yangkodza
snasui wrote: Sun Jun 12, 2022 9:22 pm :D เท่าที่สังเกตไม่ได้ทำแค่คัดลอกข้อมูลไปวาง แต่มีการเปลี่ยนค่าด้วย กรุณาอธิบายขั้นตอนการทำงานของข้อ 4 มาอย่างละเอียดพร้อมทั้งแจ้งขั้นตอนที่ยังติดปัญหามาด้วยครับ
จากข้อ 4
ลักษณะการทำงานตอนนี้คือ รันมาโครตรงๆยังไม่ได้สร้างปุ่มครับ มาโครเก็บฐานข้อมูล
การทำงานคือ copy วันที่ จาก แผ่นงาน ฐานข้อมูลรายวัน D2 ไป แผ่นงาน สถิติ ที่คอลัมน์สุดท้าย และ ที่แผ่นงานใบลงเวลาทำงาน copy ข้อมูลจาก I7:I117 ไปแผ่นงานสถิติที่ใต้วันที่ จากที่ copy มา และปรับใช้ค่ำย่อจาก ไม่รูดเข้า/ออก เป็น ม , ขาด เป็น ข , ลากิจเป็น ก , ลาป่วยเป็น ป , ลาคลอดเป็น ค และ ไปราชการ เป็น ร
จาก Code ที่ผมใช้ ทำงานได้แค่ วันเดียว เช่นวันที่ 6 พอเรา ดึงข้อมูล วันที่ 7 เข้ามา ตัวแผ่นงานสถิติไม่เลื่อนเป็นคอลัมน์ใหม่ให้ครับ กลายเป็นว่าไปทับข้อมูลของวันที่ 6 แทน

รบกวนชี้แนะด้วยครับ :D

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 10:08 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub เก็บฐานข้อมูล()
    Dim rngTarget As Range
    Application.ScreenUpdating = False
    Sheets("ใบลงเวลาทำงาน").Select
    Range("I7:I117").Select
    Selection.Copy
    Sheets("สถิติ").Select
    Set rngTarget = Range("a1").End(xlToRight).Offset(0, 1)
'    Range("C2").Select
    rngTarget.Offset(1, 0).Select

        
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ฐานข้อมูลรายวัน").Select
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("สถิติ").Select
'    Range("C1").Select
    rngTarget.Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.NumberFormat = "[$-th-TH,107]d mmm yy;@"
 '    Columns("C:C").Select
    rngTarget.EntireColumn.Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Replace What:="ไม่รูดเข้า/ออก", Replacement:="ม", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ขาด", Replacement:="ข", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลากิจ", Replacement:="ก", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาป่วย", Replacement:="ป", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาคลอด", Replacement:="ค", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ไปราชการ", Replacement:="ร", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="สาย", Replacement:="ส", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("C1").Select
    Sheets("ใบลงเวลาทำงาน").Select
    Application.ScreenUpdating = True
End Sub

Re: ช่วยปรับสูตรให้หน่อยครับ

Posted: Sun Jun 12, 2022 10:22 pm
by yangkodza
snasui wrote: Sun Jun 12, 2022 10:08 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub เก็บฐานข้อมูล()
    Dim rngTarget As Range
    Application.ScreenUpdating = False
    Sheets("ใบลงเวลาทำงาน").Select
    Range("I7:I117").Select
    Selection.Copy
    Sheets("สถิติ").Select
    Set rngTarget = Range("a1").End(xlToRight).Offset(0, 1)
'    Range("C2").Select
    rngTarget.Offset(1, 0).Select

        
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ฐานข้อมูลรายวัน").Select
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("สถิติ").Select
'    Range("C1").Select
    rngTarget.Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.NumberFormat = "[$-th-TH,107]d mmm yy;@"
 '    Columns("C:C").Select
    rngTarget.EntireColumn.Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Replace What:="ไม่รูดเข้า/ออก", Replacement:="ม", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ขาด", Replacement:="ข", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลากิจ", Replacement:="ก", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาป่วย", Replacement:="ป", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ลาคลอด", Replacement:="ค", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="ไปราชการ", Replacement:="ร", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="สาย", Replacement:="ส", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("C1").Select
    Sheets("ใบลงเวลาทำงาน").Select
    Application.ScreenUpdating = True
End Sub
ขอบคุณมากครับอาจารย์ ตรงตามที่ต้องการครับผม :thup: