
ตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Sub AddOrderStock()
Dim A As Range, B As Range
Set A = Range("Table110[รหัสสินค้า]")
Set B = Range("A13")
'On Error Resume Next
If Application.WorksheetFunction.CountIf(A, B) = 0 Then
If Range("A13") = "/x" Then
MsgBox "คุณทำรายการไม่ถูกต้อง"
End
End If
If MsgBox("รหัสสินค้าสามารถใช้ได้", vbOKCancel + vbQuestion, "รหัสสินค้า") = vbOK Then
Range("B65536").End(xlUp).Offset(1, 0).Value = Range("B13:F13").Value
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 7).Value = Range("H13").Value
'refresh
Range("B13:F13,H13").ClearContents
'Add New Sheet
Sheets.Add After:=Sheets(Sheets.Count)
Range("A4:I4").Value = Array("รหัสสินค้า", "วันที่", "รายการ", "เลขที่ใบสั่งซื้อ", "เลขที่ใบเสนอราคา", _
"เลขที่ผลิต", "จำนวนรับ", "จำนวนจ่าย", "คงเหลือ", "จำนวนเศษ", "ราคา")
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$4:$J$5"), , xlYes).Name = _
"Table.Count"
With Application
.WindowState = xlMaximized
.ActiveSheet.ListObjects("Table.Count").TableStyle = "TableStyleMedium8"
End With
Range("E1:I1").Value = Array("ตั้งต้น", "รับทั้งหมด", "จ่ายทั้งหมด", "คงเหลือ", "เหลือเศษ")
With Range("E1:I2")
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
End With
With Range("E1:I1")
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End With
Range("F2").Formula = "=SUM(F5:F999999)"
Range("G2").Formula = "=SUM(G5:G999999)"
Range("H2").Formula = "=E2+F2-G2"
Range("I2").Formula = "=SUM(I5:I999999)"
'ลิ้งหน้าแรก
Range("J2").Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"แผ่น!A1", TextToDisplay:="กลับหน้าแรก"
'ลิ้งรหัสสินค้าสุดท้าย
Worksheets("แผ่น").Select
Dim m As Long
m = Sheets.Count - 1
If MsgBox("คุณต้องการเชื่อมโยงกับ Sheet" & m & " ใช่หรือไม่ ?", vbOKCancel, "Hyperlink") = vbOK Then
Range("Table110[รหัสสินค้า]").End(xlDown).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Sheet" & m & "!A1"
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 9).Formula = "=Sheet" & m & "!E2"
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 10).Formula = "=Sheet" & m & "!F2"
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 11).Formula = "=Sheet" & m & "!G2"
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 12).Formula = "=Sheet" & m & "!H2"
Range("Table110[รหัสสินค้า]").End(xlDown).Offset(0, 13).Formula = "=Sheet" & m & "!I2"
Range("Table110[รหัสสินค้า]").End(xlDown).Select
Selection.Copy
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
'save
ActiveWorkbook.Save
MsgBox "บันทึกสำเร็จ"
End If
Else
If MsgBox("รหัสสินค้า " & B & " มีอยู่แล้ว" & vbCrLf & "ต้องการไปยังหน้าบันทึกข้อมูลหรือไม่ ?", _
vbOKCancel + vbQuestion, "ตรรวจสอบรหัสสินค้า") = vbOK Then
Dim r As Long
For r = 16 To 65536
On Error Resume Next
If Cells(r, 1) = Range("A13") Then
'MsgBox ("แถวที่" & r)
Cells(r, 1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Exit For
'Cells(r, 1).Select
End If
Next r
End If
End If
End Sub