สวัสดีครับอาจารย์
ผมขอรบกวนขอคำชี้แนะเนื่องสูตร VBA ครับ
จากคราวก่อนที่อาจารย์ได้แนะนำสูตรการ Copy ไว้ให้ ผมลองมาแก้ไขเพิ่มเติม แต่ไม่สามารถทำงานได้
เนื่องจากมีเงื่อนไขเพิ่มเข้ามาครับ เงื่อนไขที่ว่า คือ ต้องการ Copy ข้อมูลจาก 2 ไฟล์มาไว้ที่ไฟล์เดียวกัน
ถ้าคอลัมน์ D ในไฟล์ Lower และ Upper เจอว่ามี M-5A จะนำข้อมูลที่ต้องการของแถว M-5A ไปใส่ที่ Sheet ชื่อ M-5A ในช่องที่กำหนดในไฟล์ Book
****ถ้าชื่อ Sheet เป็นลักษณะ M-5_9A แบบนี้สูตร VBA ทำได้มั้ยครับ
ผมได้แนบไฟล์ตัวอย่างการลงข้อมูลมาให้แล้วครับ และไฟล์ที่ลองแก้ไขแต่ไม่เวิร์ค 5555
#ขอบคุณมา ณ ที่นี้มากครับ
Code: Select all
Sub Test0()
Dim rall As Range, shStr As String
Dim rs As Range, rt As Range
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
Dim m As Integer, n As Integer
Dim o As Integer, p As Integer
Dim q As Integer, r As Integer
Dim v As Integer, w As Integer
With Workbooks("ME15812 LOWER.xlsx").Worksheets("LOWER")
Set rall = .Range("d2", .Range("d" & .Rows.Count).End(xlUp))
For i = 1 To rall.Count Step 8
shStr = Replace(rall(i).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("E98")
For j = 4 To 4
rt.Resize(3).Value = _
rall(i).Offset(0, j).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next j
Next i
For k = 1 To rall.Count Step 8
shStr = Replace(rall(k).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("H108")
For l = 5 To 7
rt.Resize(3).Value = _
rall(k).Offset(0, l).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next l
Next k
For m = 1 To rall.Count Step 8
shStr = Replace(rall(m).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("E117")
For n = 10 To 15
rt.Resize(3).Value = _
rall(m).Offset(0, n).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next n
Next m
For o = 1 To rall.Count Step 8
shStr = Replace(rall(o).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("E126")
For p = 17 To 22
rt.Resize(3).Value = _
rall(o).Offset(0, p).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next p
Next o
With Workbooks("ME15812 UPPER.xlsx").Worksheets("UPPER")
For q = 1 To rall.Count Step 8
shStr = Replace(rall(q).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("E108")
For r = 4 To 6
rt.Resize(3).Value = _
rall(q).Offset(0, r).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next r
Next q
For v = 1 To rall.Count Step 8
shStr = Replace(rall(v).Value, "M", " M")
shStr = Replace(shStr, "-", "")
Set rt = Workbooks("Book.xlsx").Worksheets(shStr).Range("E162")
For w = 7 To 9
rt.Resize(3).Value = _
rall(v).Offset(0, w).Resize(3).Value
Set rt = rt.Offset(0, 1)
Next w
Next v
End With
End Sub