Page 1 of 1
VBA update ข้อมูลหลายบรรทัด
Posted: Mon Nov 04, 2019 4:09 am
by yodpao.b
VBA update ข้อมูลหลายบรรทัด
ต้องการ update ข้อมูลในตารางสีเทา
ไปไว้ใน page " data_Approvebudget"
โดยอ้างอิงจากหัวคอลัมทั้ง 2 หน้า
ขั้นตอน
1คลิก

- 2.JPG (19.17 KiB) Viewed 56 times
2update ข้อมูล

- 0.JPG (21.69 KiB) Viewed 56 times
3มาไว้หน้านี้

- 2.JPG (19.17 KiB) Viewed 56 times
Re: VBA update ข้อมูลหลายบรรทัด
Posted: Mon Nov 04, 2019 4:35 am
by yodpao.b
จาก code ทำงานได้ บรรทัดเดียว
Code: Select all
Sub MacroUndate()
Dim FillCodeRange As Range
Dim CodeRange As Range
Dim i As Integer
Set CodeRange = Worksheets("data_Approvebudget").Range("E:E")
Set FillCodeRange = Worksheets("Approve_budget").Range("C39")
With Application.WorksheetFunction
i = .Match(FillCodeRange, CodeRange, 0)
End With
With Sheets("data_Approvebudget")
.Range("E" & i).Resize(1, 58).Value = Sheets("Approve_budget").Range("C39:BG39").Value
End With
End Sub
Re: VBA update ข้อมูลหลายบรรทัด
Posted: Mon Nov 04, 2019 8:14 pm
by snasui

การทำงานลักษณะนี้ต้อง Loop แต่ละค่าเข้าไปตรวจสอบว่าอยู่ในบรรทัดไหนแล้วค่อยนำค่าต้นทางไปวางปลายทาง
จำเป็นต้องฝึกการ Loop ให้เป็นไม่เช่นนั้นจะใช้ VBA ได้อย่างจำกัดครับ
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Dim rAll As Range, r As Range
Set CodeRange = Worksheets("data_Approvebudget").Range("E:E")
With Worksheets("Approve_budget")
Set rAll = .Range("c39", .Range("c" & .Rows.Count).End(xlUp))
End With
Set FillCodeRange = Worksheets("Approve_budget").Range("C39")
For Each r In rAll
With Application.WorksheetFunction
i = .Match(r.Value, CodeRange, 0)
End With
With Sheets("data_Approvebudget")
.Range("E" & i).Resize(1, 57).Value = r.Resize(1, 57).Value
End With
Next r
Re: VBA update ข้อมูลหลายบรรทัด
Posted: Mon Nov 04, 2019 11:42 pm
by yodpao.b
code นี้ไว้ไปทำที่ทำงานครับ
Re: VBA update ข้อมูลหลายบรรทัด
Posted: Tue Nov 05, 2019 9:03 pm
by yodpao.b
ขอบคุณมากครับ
จากนี้คงไม่มีไฟล์นี้คงไม่มีอะไรแล้ว
ที่เหลือก็เป็นตารางสรุป ใช้แต่ ifs อย่างเดียวครับ