
ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Option Explicit
Sub IssueLogToReport1()
Dim r As Range, rt As Range
Dim i As Integer, k As Integer
k = Worksheets("Issue Log").Range("L65536").End(xlUp).Row
With Worksheets("Issue Log")
For i = k To 2 Step -1
If .Cells(i, "P") >= Date + 30 Then
Set r = .Range("P" & i)
Set rt = Worksheets("Report1").Range("G65536") _
.End(xlUp).Offset(1, -6)
r.Offset(0, -15).Resize(1, 3).Copy
rt.PasteSpecial xlPasteValues
r.Offset(0, -11).Copy
rt.Offset(0, 3).PasteSpecial xlPasteValues
r.Offset(0, -3).Copy
rt.Offset(0, 4).PasteSpecial xlPasteValues
r.Offset(0, -7).Copy
rt.Offset(0, 5).PasteSpecial xlPasteValues
r.Copy
rt.Offset(0, 6).PasteSpecial xlPasteValues
r.EntireRow.Delete
End If
Next i
End With
Application.CutCopyMode = False
End Sub
Sub MoveToNTF()
Dim rs As Range
Dim rt As Range
Set rs = Worksheets("Report1").Range("A2")
Set rt = Worksheets("NTF RP").Range("G6")
rt = rs.Offset(0, 1) ' ss
rt.Offset(0, 1) = rs.Offset(0, 2) 'rec
rt.Offset(1, 0) = rs.Offset(0, 3) 'session
rt.Offset(2, 0) = rs.Offset(0, 4) 'response
rt.Offset(3, 0) = rs.Offset(0, 5) 'sol
rt.Offset(4, 0) = rs.Offset(0, 6) 'target date
Range("H:H").Replace What:="=", Replacement:="#"
rs.Resize(1, 7).Delete shift:=xlUp
Range("H:H").Replace What:="#", Replacement:="="
End Sub
หากคุณ axiomy จำเป็นต้องใช้ VBA ควรจะศึกษาพื้นฐานให้เข้าใจเพื่อปรับ Code ได้บ้างครับ ไม่เช่นนั้นจะไม่สามารถแก้ไขเองได้แม้เพียงการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ
สำหรับกรณีที่ถามมานี้ไม่ง่ายนักสำหรับมือใหม่ เพื่อเป็นแนวทางในการศึกษา VBA ให้เริ่มจากการบันทึก Macro แล้วดูว่าจากการกระทำของเรานั้น โปรแกรมบันทึกออกมาเป็น Code อย่างไร จะทำให้เกิดความคุ้นเคยมากขึ้นครับ
You do not have the required permissions to view the files attached to this post.