สอบถามการนำข้อมูลจากหลาย ๆ sheet มารวมในตารางแต่ดึงมาเฉพาะยอดรวมแยก product และ currency
เจ้าหนี้ 1 ราย ในรอบนี้อาจจะมี currency เดียว แต่รอบถัดไปอาจจะมี 2 currency ตามตัวอย่าง
หรือ เจ้าหนี้ 1 รายอาจจะซื้อทั้ง GOODS และ PARTS ซึ่งใน file แนบ Sheet Report เป็นผลลัพท์ที่ต้องการ
ซึ่งอยากได้เป็น Code vba ซึ่งลองเขียนเองแบบง่าย ๆ แล้วค่ะตามที่ส่งมา ได้ผลลัพท์ตามต้องการ แต่เมื่อมีรายการยอดรวมเปลี่ยนแปลง
ต้องไปแก้ไขเพิ่ม code เนื่องจากดึงมาไม่ครบ และ code ยาวมากถ้ามีจำนวนเจ้าหนี้มาก มีวิธีเขียนให้ง่ายกว่านี้มั้ยคะ
Code: Select all
Option Explicit
Dim k As Integer
Dim r As Integer
Private Sub CommandButton1_Click()
r = 5
For k = 2 To 5
'1010000000 KKK00
If Sheet2.Cells(k, 5) <> "" And Sheet2.Cells(k, 2) = "GOODS" And Sheet2.Cells(k, 4) = "THB" Then
Sheet1.Cells(5, 3) = Sheet2.Cells(k, 5)
End If
If Sheet2.Cells(k, 5) <> "" And Sheet2.Cells(k, 2) = "GOODS" And Sheet2.Cells(k, 4) = "JPY" Then
Sheet1.Cells(6, 3) = Sheet2.Cells(k, 5)
Sheet1.Cells(6, 4) = Sheet2.Cells(k, 4)
Sheet1.Cells(6, 5) = Sheet2.Cells(k, 3)
End If
If Sheet2.Cells(k, 5) <> "" And Sheet2.Cells(k, 2) = "PARTS" And Sheet2.Cells(k, 4) = "JPY" Then
Sheet1.Cells(5, 6) = Sheet2.Cells(k, 5)
Sheet1.Cells(5, 7) = Sheet2.Cells(k, 4)
Sheet1.Cells(5, 8) = Sheet2.Cells(k, 3)
End If
If Sheet2.Cells(k, 5) <> "" And Sheet2.Cells(k, 2) = "PARTS" And Sheet2.Cells(k, 4) = "USD" Then
Sheet1.Cells(6, 6) = Sheet2.Cells(k, 5)
Sheet1.Cells(6, 7) = Sheet2.Cells(k, 4)
Sheet1.Cells(6, 8) = Sheet2.Cells(k, 3)
End If
'1010000001 KKK01
If Sheet3.Cells(k, 5) <> "" And Sheet3.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(7, 12) = Sheet3.Cells(2, 5) + Sheet13.Cells(8, 4)
End If
'1010000010 KKK10
If Sheet4.Cells(k, 5) <> "" And Sheet4.Cells(k, 2) = "PARTS" And Sheet4.Cells(k, 4) = "JPY" Then
Sheet1.Cells(10, 6) = Sheet4.Cells(k, 5)
Sheet1.Cells(10, 7) = Sheet4.Cells(k, 4)
Sheet1.Cells(10, 8) = Sheet4.Cells(k, 3)
End If
'1010000011 KKK11
If Sheet5.Cells(k, 5) <> "" And Sheet5.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(12, 12) = Sheet5.Cells(2, 5) + Sheet13.Cells(16, 4)
End If
'1010000020 KKK20
If Sheet6.Cells(k, 5) <> "" And Sheet6.Cells(k, 2) = "GOODS" And Sheet6.Cells(k, 4) = "JPY" Then
Sheet1.Cells(15, 3) = Sheet6.Cells(k, 5)
Sheet1.Cells(15, 4) = Sheet6.Cells(k, 4)
Sheet1.Cells(15, 5) = Sheet6.Cells(k, 3)
'1010000030 KBT
If Sheet7.Cells(k, 5) <> "" And Sheet7.Cells(k, 2) = "PARTS" And Sheet7.Cells(k, 4) = "USD" Then
Sheet1.Cells(18, 6) = Sheet7.Cells(k, 5)
Sheet1.Cells(18, 7) = Sheet7.Cells(k, 4)
Sheet1.Cells(18, 8) = Sheet7.Cells(k, 3)
End If
'1010000031 KKK31
If Sheet8.Cells(k, 5) <> "" And Sheet8.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(20, 12) = Sheet8.Cells(2, 5) + Sheet13.Cells(28, 4)
End If
'1010000051 KFI51
If Sheet9.Cells(k, 5) <> "" And Sheet9.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(23, 12) = Sheet9.Cells(2, 5) + Sheet13.Cells(32, 4)
End If
'1012070000 KMTC00
If Sheet10.Cells(k, 5) <> "" And Sheet10.Cells(k, 2) = "GOODS" And Sheet10.Cells(k, 4) = "THB" Then
Sheet1.Cells(26, 3) = Sheet10.Cells(k, 5)
If Sheet10.Cells(k, 5) <> "" And Sheet10.Cells(k, 2) = "PARTS" And Sheet10.Cells(k, 4) = "JPY" Then
Sheet1.Cells(26, 6) = Sheet10.Cells(k, 5)
Sheet1.Cells(26, 7) = Sheet10.Cells(k, 4)
Sheet1.Cells(26, 8) = Sheet10.Cells(k, 3)
End If
'1012070001 KMTC01
If Sheet11.Cells(k, 5) <> "" And Sheet11.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(28, 12) = Sheet11.Cells(2, 5) + Sheet13.Cells(40, 4)
End If
'1045010001 KSI01
If Sheet12.Cells(k, 5) <> "" And Sheet12.Cells(k, 2) = "OTHERS" Then
Sheet1.Cells(31, 12) = Sheet9.Cells(2, 5) + Sheet13.Cells(44, 4)
End If
r = r + 1
Next
End Sub