ขอบคุณครับที่เข้ามาอธิบาย
คืออย่างนี้ครับคุณ snasui
การอนุมัติของผู้จัดการในแต่ละวันทันทีที่อนุมัติแผ่นงานปัจจุบันแมโครจะสร้างแผ่นงานใหม่ ( เป็น Format ทำงานที่ยังไม่ป้อนข้อความ ) เพื่อให้หัวหน้างานใช้งานต่อไปในวันรุ่งขึ้น ลักษณะเป็นการวนลูป ที่ต้องทำลักษณะนี้เป็นเพราะมีการตั้งล๊อคชีทนั้นภายหลังการอนุมัติ จุดเรื่องการสร้างแผ่นงานใหม่ไม่ติดปัญหาใด ๆ ครับ เพราะถึงแม้ชื่อซ้ำมันก็จะสร้างเป็น New (2)
ปัญหาอยู่ที่ว่า
แผ่นงานที่สร้างใหม่ สามารถ Run แมโครได้ก็จริงแต่การกระทำของของแมโครที่เขียน คือ ให้ ลงชื่ออนุมติลงลายเซ็นต์ ==>>ลงวันเวลาอนุมัติ == >> และปิดท้ายด้วยล๊อคชีทเพื่อป้องกันการแก้ไขภายหลังการอนุมัติ ณ.แผ่นงานนั้นมันย้อนกลับไปกระทำที่แผ่นทดสอบการเขียนมาโคร
ครั้งแรก นั่นคือไม่สามารถลงชื่ออนุมติลงลายเซ็นต์ ==>>ลงวันเวลาอนุมัติ == >> และปิดท้ายด้วยล๊อคชีทเพื่อป้องกันการแก้ไขภายหลังการอนุมัติ ณ.แผ่นงานหม่ได้ครับผม
ต้องรบกวน Run Macro ที่แผ่นงานใหม่ดูครับ จึงจะรู้ว่าเกิดปัญหาขึ้นตามที่ผมอธิบายครับ
จะมีโค้ดใดเพื่อแก้ไข หรือแนวทางใดบ้างครับ คิดไม่ออก ??
Code: Select all
Sub Approve()
'
' Approve áÁâ¤Ã
'
' á»é¹¾ÔÁ¾ìÅÑ´: Ctrl+Shift+A
'
Sheets("Master").Visible = True
Sheets("Master").Select
Sheets("Master").Copy After:=Sheets(4)
Sheets("Master (2)").Select
Sheets("Master (2)").Name = "New"
Range("D1:H1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Master").Select
ActiveWindow.SelectedSheets.Visible = False
Range("B5:M19").Select
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 1
Selection.Locked = True
Selection.FormulaHidden = True
Range("I1").Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Range("I2").Select
ActiveCell.FormulaR1C1 = "20001"
Range("K1").Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Range("K2").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("I3:K3").Select
ActiveWindow.SmallScroll Down:=-3
Range("K2").Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Font.Size = 20
On Error GoTo Password_error
ActiveSheet.Protect (InputBox("¡ÃسÒãÊèÃËÑÊ͹ØÁѵÔ", ""))
ActiveSheet.Protect = "e20tfl"
Password_error:
If Err.Number = 1004 Then
MsgBox "ãÊèÃËÑÊÃѺ¡è͹¡ÒÃ͹ØÁѵÔ!"
End If
End Sub