quyenpv
Thu nhặt kiến thức
- Tham gia
- 5/1/13
- Bài viết
- 719
- Được thích
- 97
- Giới tính
- Nam
- Nghề nghiệp
- Decode cuộc đời!
Em chào anh chị em đang cần lấy dữ liệu từ 2 Sheet PLHD_XL và PLHD_TV sang Sheet Import, em đang dùng 2 mảng và 2 vòng lặp For để lấy kết quả thì tạm được, mong anh chị sửa giúp, tối ưu Code giúp em
Do chắp vá nên không hiểu được bản chất và cách làm lắm ạ
Em cám ơn
Dữ liệu Sheet PLHD_XL
Dữ liệu Sheet PLHD_TV
Kết quả
Do chắp vá nên không hiểu được bản chất và cách làm lắm ạ
Em cám ơn
Dữ liệu Sheet PLHD_XL
Dữ liệu Sheet PLHD_TV
Kết quả
Mã:
Sub Input_CV()
Dim I, k, ktv, ar, ketqua
Dim LastRow As Long
Dim Nguon, Dong
Sheets("A_Import_CV").Select
Sheets("A_Import_CV").Range("A2:K" & Range("B" & Rows.Count).End(3).Row + 1).Clear
With Sheets("PLHD_XL") 'Lay thong tin tai Sheet PLHD_XL
Dong = .Range("B12").End(xlDown).Row
Nguon = .Range("B12", "G" & Dong) 'Cot cuoi cung tai Sheet Input_TB
Dong = UBound(Nguon)
End With
ReDim ketqua(1 To Dong, 1 To 10)
For I = 1 To Dong
If Nguon(I, 4) > 0 Then
k = k + 1
ketqua(k, 1) = k 'STT
ketqua(k, 2) = "Chi phí xây l" & ChrW(7855) & "p" 'Hang muc CP
ketqua(k, 3) = "HM1" 'Ma HM"
ketqua(k, 4) = "TEN HM" 'Ten HM
ketqua(k, 5) = Nguon(I, 1) 'Ma CV
ketqua(k, 6) = Nguon(I, 2) 'Ten CV
ketqua(k, 7) = Nguon(I, 3) 'DVT
ketqua(k, 8) = Nguon(I, 4) 'KLuong
ketqua(k, 9) = Nguon(I, 5) / 1.1 'Don Gia
ketqua(k, 10) = ketqua(k, 8) * ketqua(k, 9) * 0.1
' ketqua(k, 11) = ketqua(k, 8) * ketqua(k, 9) + ketqua(k, 10)
End If
Next I
Sheets("A_Import_CV").Range("A2").Resize(k, 10) = ketqua
LastRow = Sheets("A_Import_CV").Cells(Rows.Count, "b").End(xlUp).Row
With Sheets("PLHD_TV") 'Lay thong tin tai Sheet PLHD_XL
Dong = .Range("B12").End(xlDown).Row
Nguon = .Range("B12", "G" & Dong) 'Cot cuoi cung tai Sheet Input_TB
Dong = UBound(Nguon)
End With
ReDim ketqua(1 To Dong, 1 To 10)
For I = 1 To Dong
If Nguon(I, 4) > 0 Then
ktv = ktv + 1
ketqua(ktv, 1) = ktv 'STT
ketqua(ktv, 2) = "Chi phí TV" 'Hang muc CP
ketqua(ktv, 3) = "HM2" 'Ma HM"
ketqua(ktv, 4) = "TEN HM" 'Ten HM
ketqua(ktv, 5) = Nguon(I, 1) 'Ma CV
ketqua(ktv, 6) = Nguon(I, 2) 'Ten CV
ketqua(ktv, 7) = Nguon(I, 3) 'DVT
ketqua(ktv, 8) = Nguon(I, 4) 'KLuong
ketqua(ktv, 9) = Nguon(I, 5) / 1.1 'Don Gia
ketqua(ktv, 10) = ketqua(ktv, 8) * ketqua(ktv, 9) * 0.1
' ketqua(k, 11) = ketqua(k, 8) * ketqua(k, 9) + ketqua(k, 10)
End If
Next I
Sheets("A_Import_CV").Range("A" & k).Resize(ktv, 10) = ketqua
Sheets("A_Import_CV").Range("A2").Resize(k, 10).Borders.LineStyle = 1
Columns("H:K").NumberFormat = "#,##0.00"
Columns("E:G").WrapText = True
With Sheets("A_Import_CV").Range("A2").Resize(k, 10).Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
' .VerticalAlignment = xlCenter
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlHairline
End With
End Sub