Xem thêm : Viết về dự định trong tương lai bằng tiếng Anh – Hướng dẫn & Bài mẫu
VBA là viết tắt của Visual Basic for Applications – một ngôn ngữ lập trình mạnh mẽ được sử dụng để tùy chỉnh và thay đổi chức năng của các ứng dụng Microsoft. Sử dụng VBA trong Excel giúp tăng hiệu suất công việc bằng cách tự động hóa các thao tác thủ công trong việc xử lý dữ liệu và tạo báo cáo. Đây thực sự là một công cụ hữu ích, tuy nhiên, nếu bạn không biết cách viết mã VBA, bạn sẽ không thể tận dụng được tiềm năng của công cụ này. Vì vậy, hãy cùng tìm hiểu top 20 mã VBA cơ bản và mã định dạng trong Excel để nâng cao kỹ năng của bạn.
Contents
- 1 Mã cơ bản
- 1.1 1. Thêm số series
- 1.2 2. Chèn nhiều cột bằng VBA
- 1.3 3. Chèn nhiều hàng
- 1.4 4. Tự động căn chỉnh cột
- 1.5 5. Tự động căn chỉnh hàng
- 1.6 6. Xóa Wrap Text
- 1.7 7. Bỏ hợp nhất các ô
- 1.8 8. Mở Calculator
- 1.9 9. Thêm ngày vào Header/Footer
- 1.10 10. Tùy chỉnh Header/Footer
- 1.11 2. Đánh dấu hàng và cột
- 1.12 3. Đánh dấu 10 giá trị hàng đầu
- 1.13 4. Đánh dấu các dãy được đặt tên
- 1.14 5. Đánh dấu giá trị lớn hơn
- 1.15 6. Đánh dấu giá trị nhỏ hơn
- 1.16 7. Đánh dấu các số âm
- 1.17 8. Đánh dấu văn bản cụ thể
- 1.18 9. Đánh dấu các ô có chú thích
- 1.19 10. Đánh dấu các hàng thay thế trong vùng chọn
Mã cơ bản
Mã cơ bản VBA giúp bạn thực hiện nhanh chóng một số tác vụ cơ bản trong bảng tính của mình.
Bạn đang xem: TOP 20 mã Macro VBA-Excel thường dùng
1. Thêm số series
Sub AddSerialNumbers()
Dim i As Integer
On Error GoTo Last
i = InputBox("Nhập giá trị", "Nhập số series")
For i = 1 To i
ActiveCell.Value = i
ActiveCell.Offset(1, 0).Activate
Next i
Last: Exit Sub
End Sub
2. Chèn nhiều cột bằng VBA
Sub InsertMultipleColumns()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireColumn.Select
On Error GoTo Last
i = InputBox("Nhập số lượng cột cần chèn", "Chèn cột")
For j = 1 To i
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightorAbove
Next j
Last: Exit Sub
End Sub
3. Chèn nhiều hàng
Sub InsertMultipleRows()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireRow.Select
On Error GoTo Last
i = InputBox("Nhập số lượng hàng cần chèn", "Chèn hàng")
For j = 1 To i
Selection.Insert Shift:=xlToDown, CopyOrigin:=xlFormatFromRightorAbove
Next j
Last: Exit Sub
End Sub
4. Tự động căn chỉnh cột
Sub AutoFitColumns()
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
5. Tự động căn chỉnh hàng
Sub AutoFitRows()
Cells.Select
Cells.EntireRow.AutoFit
End Sub
6. Xóa Wrap Text
Sub RemoveTextWrap()
Range("A1").WrapText = False
End Sub
7. Bỏ hợp nhất các ô
Sub UnmergeCells()
Selection.UnMerge
End Sub
8. Mở Calculator
Sub OpenCalculator()
Application.ActivateMicrosoftApp Index:=0
End Sub
Sub DateInHeader()
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "&D"
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
End Sub
Sub CustomHeader()
Dim myText As String
myText = InputBox("Nhập nội dung tùy chỉnh", "Nhập văn bản")
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = myText
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
End Sub
##Mã định dạng
Mã định dạng VBA giúp bạn định dạng các ô và phạm vi ô trong Excel dựa trên điều kiện cụ thể.
###1. Đánh dấu các bản sao từ vùng chọn
```vba
Sub HighlightDuplicateValues()
Dim myRange As Range
Dim myCell As Range
Set myRange = Selection
For Each myCell In myRange
If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then
myCell.Interior.ColorIndex = 36
End If
Next myCell
End Sub
2. Đánh dấu hàng và cột
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strRange As String
strRange = Target.Cells.Address & "," & _
Target.Cells.EntireColumn.Address & "," & _
Target.Cells.EntireRow.Address
Range(strRange).Select
End Sub
3. Đánh dấu 10 giá trị hàng đầu
Sub TopTen()
Selection.FormatConditions.AddTop10
With Selection.FormatConditions(Selection.FormatConditions.Count)
.TopBottom = xlTop10Top
.Rank = 10
.Percent = False
End With
With Selection.FormatConditions(1).Font
.Color = -16752384
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
4. Đánh dấu các dãy được đặt tên
Sub HighlightRanges()
Dim RangeName As Name
Dim HighlightRange As Range
On Error Resume Next
For Each RangeName In ActiveWorkbook.Names
Set HighlightRange = RangeName.RefersToRange
HighlightRange.Interior.ColorIndex = 36
Next RangeName
End Sub
5. Đánh dấu giá trị lớn hơn
Sub HighlightGreaterThanValues()
Dim i As Integer
i = InputBox("Nhập giá trị lớn hơn", "Nhập giá trị")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreater, Formula1:=i
With Selection.FormatConditions(Selection.FormatConditions.Count)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub
6. Đánh dấu giá trị nhỏ hơn
Sub HighlightLowerThanValues()
Dim i As Integer
i = InputBox("Nhập giá trị nhỏ hơn", "Nhập giá trị")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlLower, _
Formula1:=i
With Selection.FormatConditions(Selection.FormatConditions.Count)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(217, 83, 79)
End With
End Sub
7. Đánh dấu các số âm
Sub HighlightNegativeNumbers()
Dim Rng As Range
For Each Rng In Selection
If WorksheetFunction.IsNumber(Rng) Then
If Rng.Value < 0 Then
Rng.Font.Color = -16776961
End If
End If
Next
End Sub
8. Đánh dấu văn bản cụ thể
Sub HighlightValue()
Dim myStr As String
Dim myRg As Range
Dim myTxt As String
Dim myCell As Range
Dim myChar As String
Dim I As Long
Dim J As Long
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
myTxt = ActiveWindow.RangeSelection.AddressLocal
Else
myTxt = ActiveSheet.UsedRange.AddressLocal
End If
LInput:
Set myRg = Application.InputBox("Vui lòng chọn dải dữ liệu:", "Chọn dữ liệu", myTxt, , , , , 8)
If myRg Is Nothing Then Exit Sub
If myRg.Areas.Count > 1 Then
MsgBox "Không hỗ trợ nhiều cột"
GoTo LInput
End If
If myRg.Columns.Count <> 2 Then
MsgBox "Dải dữ liệu đã chọn chỉ có thể chứa hai cột"
GoTo LInput
End If
For I = 0 To myRg.Rows.Count - 1
myStr = myRg.Range("B1").Offset(I, 0).Value
With myRg.Range("A1").Offset(I, 0)
.Font.ColorIndex = 1
For J = 1 To Len(.Text)
If Mid(.Text, J, Len(myStr)) = myStr Then
.Characters(J, Len(myStr)).Font.ColorIndex = 3
End If
Next
End With
Next I
End Sub
9. Đánh dấu các ô có chú thích
Sub HighlightCommentCells()
Selection.SpecialCells(xlCellTypeComments).Select
Selection.Style = "Note"
End Sub
10. Đánh dấu các hàng thay thế trong vùng chọn
Sub HighlightAlternateRows()
Dim rng As Range
For Each rng In Selection.Rows
If rng.Row Mod 2 = 1 Then
rng.Style = "20% -Accent1"
rng.Value = rng.Value ^ (1 / 3)
Else
' Do nothing
End If
Next rng
End Sub
**Xem thêm**
- [Khóa học Ứng dụng VBA trong Excel](#)
- [Tổng hợp các thuật ngữ quan trọng trong VBA](#)
- [Cách thêm, xóa, chặn nhận xét trong Excel VBA](#)
- [Tải tài liệu miễn phí] Template Update tỷ giá tự động bằng Power Query, Dashboard và VBA](#)
Nguồn: https://ispacedanang.edu.vn
Danh mục: Học tập