snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub AddDelDay()
Dim Pos, mDate, tDate As String
Dim NumCol, DDate As Integer
ActiveSheet.Unprotect
Pos = Selection.Address
NumCol = Selection.Column
mDate = Cells(5, NumCol).Value
Range(Cells(7, NumCol), Cells(7, NumCol)).Select
If Val(Format(mDate, "YYYY")) > 3000 Then
tDate = Format(mDate, "dd mmmm ") & Val(Format(mDate, "YYYY")) - 543
Else
tDate = Format(mDate, "dd mmmm yyyy")
End If
If Selection.MergeCells Then
' ยกเลิกวันหยุด
If MsgBox("ต้องการยกเลิกการกำหนดวันที่ " & tDate & " เป็นวันหยุดใช่หรือไม่", vbYesNo + vbDefaultButton2 + vbQuestion, "ยืนยันการยกเลิกวันหยุด") = vbYes Then
mUnMerge
Selection.ClearContents
End If
Else
Range(Cells(7, NumCol), Cells(41, NumCol)).Select
If MsgBox("ต้องการกำหนดวันที่ " & tDate & " เป็นวันหยุดใช่หรือไม่", vbYesNo + vbDefaultButton2 + vbQuestion, "ยืนยันการกำหนดวันหยุด") = vbYes Then
' ผสานเซล
Call mMerge
End If
End If
ActiveSheet.Protect
End Sub