Rút gọn macro (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nhk007dn

Thành viên chính thức
Tham gia
12/11/12
Bài viết
74
Được thích
7
Mình Record được đoạn code định dạng 1 vùng, tuy nhiên nó dài quá nên mình muốn nhờ các bạn giúp rút gọn đoạn code này.
Mình cảm ơn!
Mã:
Sub Macro4()
'
' Macro4 Macro
'


'
    Range("F1:G3").Select
    Selection.Font.Bold = True
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.149998474074526
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .Color = -65536
        .TintAndShade = 0
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlDot
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlDot
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub
 
Bạn thử với cái này sau đó đối chiếu:

PHP:
Sub Macro4()
 Dim J As Long
 
 With Range("F1:G3")
    With .Font
        .Bold = True
        .Color = -65536
    End With
    .Borders(xlDiagonalDown).LineStyle = xlNone
    .Borders(xlDiagonalUp).LineStyle = xlNone
    For J = 7 To 12
        With .Borders(J)  '7-12'
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
    Next J
    .VerticalAlignment = xlCenter
 End With
End Sub
 
Upvote 0
Mình Record được đoạn code định dạng 1 vùng, tuy nhiên nó dài quá nên mình muốn nhờ các bạn giúp rút gọn đoạn code này.
Mình cảm ơn!
mục đích của bạn là làm cái gì rồi tôi sẽ rút gọn code cho bạn, định dạng khung viền, định dạng font, định dạng cell... như thế nào?
 
Upvote 0
Bạn thử với cái này sau đó đối chiếu:

PHP:
Sub Macro4()
 Dim J As Long
 
 With Range("F1:G3")
    With .Font
        .Bold = True
        .Color = -65536
    End With
    .Borders(xlDiagonalDown).LineStyle = xlNone
    .Borders(xlDiagonalUp).LineStyle = xlNone
    For J = 7 To 12
        With .Borders(J)  '7-12'
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
    Next J
    .VerticalAlignment = xlCenter
 End With
End Sub

Mình cảm ơn!
Cho hỏi '7-12' nghĩa là gì vậy bạn?
trong code nó có nghĩa gì?
 
Upvote 0
mục đích của bạn là làm cái gì rồi tôi sẽ rút gọn code cho bạn, định dạng khung viền, định dạng font, định dạng cell... như thế nào?

Mình muốn định dạng
khung bao quanh
đường kẻ ở giữa
màu nền
màu font
in đậm
canh giữa theo 2 phương

cho vùng từ F1 đến cuối bảng số liệu (tính cho cả dòng và cột)
Mình cảm ơn!
 
Upvote 0
[thongbao]Cho hỏi '7-12' nghĩa là gì vậy bạn?
trong code nó có nghĩa gì?[/thongbao]

Những thứ này bạn có thể hỏi ngay trong cửa sổ 'Immediate' í;
Khỏi hỏi trên diễn đàn chi cho mắc công chờ lâu hơn!
 
Upvote 0
Mình muốn định dạng
khung bao quanh
đường kẻ ở giữa
màu nền
màu font
in đậm
canh giữa theo 2 phương

cho vùng từ F1 đến cuối bảng số liệu (tính cho cả dòng và cột)
Mình cảm ơn!
Mã:
Sub GPE()
        With Range("H16:J20")
                .Borders.LineStyle = 1
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .Interior.ColorIndex = 20
                .Font.ColorIndex = 12
                .Font.Bold = True
        End With
End Sub
theo yêu cầu của bạn ngắn gọn vậy thôi
 
Upvote 0
Theo yêu cầu của chủ thớt thì để ra một hàm chuyên môn:

sub MauMe(rg as range)
with rg
....
end with
end sub

Sau đó muón áp dụng vào range nào thì gọi hàm.

MauMe Range("H16:J20")
 
Upvote 0
Các diễn giải có ghi trong code, bạn tham khảo.
PHP:
Sub Macro4()    
With Range("F1:G3")        
.Font.Bold = True 'In đậm chữ        
.Font.Color = -65536 'Tô màu chữ       
.Interior.ColorIndex = 15 'Tô màu nền       
.Borders.LineStyle = 1 'Kẻ khung nét liền toàn bộ vùng        
.Borders(xlInsideVertical).LineStyle = 3 'Kẻ khung nằm đứng, nét đứt trong vùng       
.Borders(xlInsideHorizontal).LineStyle = 3 'Kẻ khung nằm ngang, nét đứt trong vùng        
.VerticalAlignment = xlCenter 'Canh lề chữ ở giữa, so với trên - dưới       
.HorizontalAlignment = xlCenter 'Canh lề chữ ở giữa, so với phải - trái    
End With
End Sub
 
Upvote 0
@all: càng nhiều ý kiến của các bạn mình càng hiểu ra nhiều. Mình cảm ơn!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom