Kính chào quý anh chị GPE,
Em có 1 vấn đề nho nhỏ muốn nhờ anh chị em GPE tư vấn giúp:
Tổng hợp công từ các đơn vị gửi về... (Chi tiết trong file đính kèm)
Hiện tại em đã dùng Marco tổng hợp được công 1 quý/1 đơn vị.
Tuy nhiên, đoạn code sẽ rất dài nếu em cứ Copy&Paste, thay đổi tên file, tên sheet với các đơn vị còn lại.
Em muốn hỏi có cách nào đặt để đoạn code đơn giản hơn và thay đổi tùy biến đơn vị, quý (đặt biến và gọi ra cho các sheet, file) theo ý mình được không ạ?
Đơn giản hơn là em muốn đặt tất cả các chỗ có DP1 thành biến i (DP1, DP2, KD, v.v.) và biến j (T1, T2, T3); k (T4, T5, T6); l (T7, T8, T9); m (T10, T11, T12)
Sau đó em có thể gọi các biến này ra và tùy biến thay thế chạy hàm tương ứng.
Do không biết nhiều code nên em khá mù mờ mong ACE giúp đỡ.
Em xin cảm ơn!
Email: xefordhanoi@gmail.com
Em có 1 vấn đề nho nhỏ muốn nhờ anh chị em GPE tư vấn giúp:
Tổng hợp công từ các đơn vị gửi về... (Chi tiết trong file đính kèm)
Hiện tại em đã dùng Marco tổng hợp được công 1 quý/1 đơn vị.
Tuy nhiên, đoạn code sẽ rất dài nếu em cứ Copy&Paste, thay đổi tên file, tên sheet với các đơn vị còn lại.
Em muốn hỏi có cách nào đặt để đoạn code đơn giản hơn và thay đổi tùy biến đơn vị, quý (đặt biến và gọi ra cho các sheet, file) theo ý mình được không ạ?
Mã:
[/COLOR]Sub CONG_QUY2_DP1()'
' CODE TONG HOP CONG THEO QUY
' VI DU: TONG HOP CONG QUY II
' DON VI: DIEU PHOI 1
'
Dim A As Integer '//VI TRI MOI TURN 1
Dim B As Integer '// VI TRI MOI TURN 2
Dim X As String '//DUONG DAN MOI
'// TONG HOP DU LIEU THANG 4
Sheets("DP1").Select '//CHON SHEET TONG HOP XOA DU LIEU CU
Range("A2:O4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlToRight)).Select '//CHON VUNG DU LIEU CU
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents '// XOA
'// TURN 1
X = ActiveWorkbook.Path '//LAY DUONG DAN MO FILE KHAC
Workbooks.Open (X & "\CC\DP1.xlsx") '//MO FILE TRONG DUONG DAN
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("Demo_v2").Select '//CHON SHEET THANG 4
Range("B4:F4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
A = Range("Q1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("A" & A).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
'// TURN 2
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("Demo_v2").Select '//CHON SHEET THANG 4
Range("G4:O4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
B = Range("R1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("G" & B).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
'// TURN 3
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("T5").Select '//CHON SHEET THANG 4
Range("B4:F4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
A = Range("Q1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("A" & A).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
'// TURN 4
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("T5").Select '//CHON SHEET THANG 4
Range("G4:O4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
B = Range("R1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("G" & B).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
'// TURN 5
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("T6").Select '//CHON SHEET THANG 4
Range("B4:F4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
A = Range("Q1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("A" & A).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
'// TURN 6
Windows("DP1.xlsx").Activate '//MO FILE DU LIEU THO
Sheets("T6").Select '//CHON SHEET THANG 4
Range("G4:O4").Select '//CHON VUNG DU LIEU COPY
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy '//COPY
Windows("BANG CONG.xlsm").Activate '//MO FILE TONG HOP
Sheets("DP1").Select '//CHON SHEET DP1
B = Range("R1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("G" & B).Select '//CHON VI TRI MOI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '//PASTE
Application.CutCopyMode = False '//CLEAR CLIPBOARD
Workbooks("DP1.xlsx").Close False '//DONG FILE CHAM CONG DP1
'//DAT HAM MA_TL
Range("F2").Select '//CHON O F2
ActiveCell.FormulaR1C1 = "=RC[-4]&"" ""&RC[-2]&"" ""&RC[-1]" '//DAT HAM
Selection.AutoFill Destination:=Range("F2:F300")
'//FORMAT TABLE TURN 1
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
'//FORMAT TURN 2
A = Range("Q1").Value + 2 '// LAY TOA DO VI TRI MOI
Range("F" & A).Select '//CHON VI TRI MOI
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A2").Select '//CHON VI TRI A2
End Sub[COLOR=#000000]
Đơn giản hơn là em muốn đặt tất cả các chỗ có DP1 thành biến i (DP1, DP2, KD, v.v.) và biến j (T1, T2, T3); k (T4, T5, T6); l (T7, T8, T9); m (T10, T11, T12)
Sau đó em có thể gọi các biến này ra và tùy biến thay thế chạy hàm tương ứng.
Do không biết nhiều code nên em khá mù mờ mong ACE giúp đỡ.
Em xin cảm ơn!
Email: xefordhanoi@gmail.com
File đính kèm
Lần chỉnh sửa cuối: