Page 1 of 1

การ Run macro หลังจากกด Enter โดยไม่ต้องสร้างปุ่มกด Run macro ครับ

Posted: Tue Nov 22, 2022 11:10 am
by ballkoong
การ Run macro หลังจากกด Enter โดยไม่ต้องสร้างปุ่มกด Run macro ครับ
คือจะScanใส่ข้อมูลลงไปที่ Cell C1 และ ก็ให้ Macro run ที่ Sub SAVE() auto ไปเลยครับ โดยไปต้องสร้างปุ่มกดให้ Run macro อีก
เนื่องจากหน้างานจริง มี Scanner แค่ อย่างเดียวครับ คืออยากให้ Scan และ Save ไปเลยครับ
ต้องปรับ Code อย่างไรครับ

Code: Select all

Sub SAVE()
'
' Macro2 Macro
'

'
    'Range("K2").Select
    'ActiveCell.FormulaR1C1 = "=PartNOname"
    Range("K2").FormulaR1C1 = "=PartNOname"
    
    'Range("L2").Select
    'ActiveCell.FormulaR1C1 = "=NOW()"
    Range("L2").FormulaR1C1 = "=NOW()"
    
    Range("K2:L2").Copy
    
    'Selection.Copy
    Range("K2:L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        
    Range("K2:L2").Copy
    
    
    Sheets("Detail").Select
    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        ActiveCell.Offset(0, -1).Select
        
        
    'Range("A3").Select
    'Range("B1").Select
    'Selection.End(xlDown).Select
    'ActiveCell.Offset(1, 0).Select
    
    'Application.CutCopyMode = False
    
    
    ActiveCell.FormulaR1C1 = "=IF(R[-1]C=""No"",1,R[-1]C+1)"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Application.CutCopyMode = False
    
    
    'Range("B1").Select
    'Selection.End(xlDown).Select



'
' Macro5 Macro
'

'
    Range("A1:C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    
    Sheets("Scan").Select
    Range("C1").Select
    ActiveWorkbook.SAVE
    Range("C1").Select
    
End Sub

Re: การ Run macro หลังจากกด Enter โดยไม่ต้องสร้างปุ่มกด Run macro ครับ

Posted: Tue Nov 22, 2022 4:43 pm
by snasui
:D ลองกำหนดตามภาพ ต้องการให้ทำงานกับชีตไหนให้ไปแทรก Code ในชีตนั้นใน VBE ครับ

ไม่ควรตั้งชื่อ Macro ว่า SAVE ควรจะตั้งเป็นชื่ออื่นที่ไม่ซ้ำกับคำสั่งของ VBA ครับ

Re: การ Run macro หลังจากกด Enter โดยไม่ต้องสร้างปุ่มกด Run macro ครับ

Posted: Tue Nov 22, 2022 6:47 pm
by ballkoong
ขอบคุณมากครับ อาจาร์

แต่ ถ้าเราจะบอกเงื่อนไขเพิ่ม ว่า ถ้า A1 มีค่ามากกว่า 1
ถ้าใช่ให้ Run
แต่ถ้าไม่ใช่ ไม่ให้ Run ใน sheet นี้

ต้องเขียน Code อย่างไรครับ

Re: การ Run macro หลังจากกด Enter โดยไม่ต้องสร้างปุ่มกด Run macro ครับ

Posted: Tue Nov 22, 2022 7:42 pm
by snasui
:D กรุณาเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อ แนบไฟล์ที่ลองเขียนเองแล้วมาด้วยจะได้ตอบต่อไปจากนั้นครับ