Bạn hoàn toàn có thể sử dụng đầy đủ mã code này ngay cả khi bạn chưa từng thực hiện VBA trước đây.
Bạn đang xem: Các đoạn code hay trong excel
Nhưng điều đầu tiên phải biết là:
Mã Macro là gì?
Trong Excel, mã macro là 1 mã xây dựng được viết bằng ngôn ngữ VBA (Visual Basic for Applications).
Ý tưởng đằng sau việc thực hiện mã là để tự động hóa hóa một hành động mà còn nếu không bạn nên thực hiện thủ công bằng tay trong Excel.
Ví dụ, chúng ta có thể sử dụng một mã chỉ để in một phạm vi ô ví dụ chỉ với cùng 1 cú nhấp chuột thay vị chọn theo thứ tự -> tệp tin Tab -> Print -> Print Select -> OK Button.
Sử dụng mã Macro vào Excel
Trước khi thực hiện những mã này, đảm bảo an toàn rằng bạn có Developer Tab bên trên thanh Excel để truy vấn VB Editor.
Sau khi chúng ta kích hoạt Developer Tab…
… chúng ta cũng có thể sử dụng quá trình dưới đây cần nên dán mã VBA vào VB Editor.
Di chuyển mang lại developer tab của công ty và nhấp chọn “Visual Basic”.




Basic Formatting Printing | Worksheet Workbook Pivot Table | Charts Advanced Formulas |
BASIC CODE |
Những mã code VBA này để giúp đỡ bạn thực hiện một số các bước cơ bạn dạng trong nháy mắt mà bạn thường làm cho trên bảng tính.
Add Serial Numbers (đánh số thự từ bỏ tự động)Code macro này sẽ giúp đỡ bạn bổ sung số serial tự động trên trang Excel.
Sau khi bạn chạy mã macro này, màn hình sẽ hiển thị đầu vào box để các bạn nhập tối phần nhiều serial và sau đó, nó đang chèn những số vào cột theo thiết bị tự.
Sub Add
Serial
Numbers()
Dim i As Integer
On Error Go
To Last
i = Input
Box("Enter Value", "Enter Serial Numbers")
For i = 1 lớn i
Active
Cell.Value = i
Active
Cell.Offset(1, 0).Activate
Next i
Last:Exit Sub
End Sub
Add Multiple Columns (chèn cột)Sau khi chạy mã macro, màn hình hiển thị sẽ hiển thị một input box và bạn phải nhập số cột mà bạn có nhu cầu chèn.
Sub Insert
Multiple
Columns()
Dim i As Integer
Dim j As Integer
Active
Cell.Entire
Column.Select
On Error Go
To Last
i = Input
Box("Enter number of columns khổng lồ insert", "Insert Columns")
For j = 1 to lớn i
Selection.Insert Shift:=xl
To
Right, Copy
Origin:=xl
Format
From
Rightor
Above
Next j
Last:Exit Sub
End Sub
Add Multiple Rows (chèn dòng)Sau lúc chạy mã macro, màn hình hiển thị sẽ hiển thị một đầu vào box và các bạn phải nhập số hàng mà bạn có nhu cầu chèn.
Sub Insert
Multiple
Rows()
Dim i As Integer
Dim j As Integer
Active
Cell.Entire
Row.Select
On Error Go
To Last
i = Input
Box("Enter number of columns to insert", "Insert
Columns")
For j = 1 to i
Selection.Insert Shift:=xl
To
Down,
Copy
Origin:=xl
Format
From
Rightor
Above
Next j
Last:Exit Sub
End Sub
Auto Fit Columns (tự rượu cồn canh những cột)Nhanh chóng tự động khớp tất cả các sản phẩm trong worksheet của bạn.
Mã macro này đã chọn tất cả các ô vào worksheet và auto khớp tức thì lập tức các cột.
Sub Auto
Fit
Columns()
Cells.Select
Cells.Entire
Column.Auto
Fit
End Sub
Auto Fit Rows (tự động canh các dòng)Bạn hoàn toàn có thể sử dụng mã code này để auto khớp tất cả các hàng trong worksheet.
Khi các bạn chạy mã này, nó vẫn chọn tất cả các ô trong worksheet và auto khớp tức thì lập tức các hàng.
Sub Auto
Fit
Rows()
Cells.Select
Cells.Entire
Row.Auto
Fit
End Sub
Remove Text Wrap (bỏ cơ chế wrap text)Mã code này sẽ giúp bạn xóa text wrap khỏi toàn cục worksheet với một chiếc nhấp chuột. Đầu tiên nó đã chọn toàn bộ các cột và tiếp đến xóa text wrap và auto khớp những hàng và cột.
Sub Remove
Wrap
Text()
Cells.Select
Selection.Wrap
Text = False
Cells.Entire
Row.Auto
Fit
Cells.Entire
Column.Auto
Fit
End Sub
Unmerge Cells (không kết nối các ô)Chọn những ô và chạy mã này, nó sẽ không còn sát nhập toàn bộ các ô vừa chọn với tài liệu bị mất của bạn.
Sub Unmerge
Cells()
Selection.Un
Merge
End Sub
Open Calculator (mở laptop trên excel)Trong hành lang cửa số có một máy tính cụ thể và sử dụng mã macro này, bạn có thể mở máy tính trực tiếp từ bỏ Excel cho bài toán tính toán.
Sub Open
Calculator()
Application.Activate
Microsoft
App Index:=0
End Sub
Add Header/Footer Date (thêm ngày sống chân trang/đầu trang)Sử dụng mã này để bổ sung ngày vào phần header và footer vào worksheet.
Bạn có thể điều chỉnh mã này nhằm đổi từ bỏ header thanh lịch footer.
Sub date
In
Header()
With Active
Sheet.Page
Setup
.Left
Header = ""
.Center
Header = "&D"
.Right
Header = ""
.Left
Footer = ""
.Center
Footer = ""
.Right
Footer = ""
End With
Active
Window.View = xl
Normal
View
End Sub
Custom Header/Footer (chèn đầu trang/chân trang theo ý bạn)Nếu bạn muốn chèn header tùy chỉnh thì đấy là một mã giành riêng cho bạn.
Chạy mã này, nhập giá bán trị cấu hình thiết lập vào đầu vào box. Để biến đổi liên kết của header hoặc footer, chúng ta cũng có thể điều chỉnh mã.
Sub custom
Header()
Dim my
Text As Stringmy
Text = Input
Box("Enter your text here", "Enter Text")
With Active
Sheet.Page
Setup
.Left
Header = ""
.Center
Header = my
Text
.Right
Header = ""
.Left
Footer = ""
.Center
Footer = ""
.Right
Footer = ""
End With
End Sub
Formatting Codes |
Những mã VBA này sẽ giúp bạn định dạng những ô với phạm vi bằng cách sử dụng một số trong những tiêu chuẩn và điều kiện cụ thể.
Highlight Duplicates from Selection (tô màu các ô cùng giá trị trong vùng được chọn)Mã macro này sẽ chất vấn mỗi ô các bạn chọn và làm nổi bật các giá trị trùng lặp.
Bạn cũng có thể biến đổi màu sắc từ mã này.
Sub Highlight
Duplicate
Values()
Dim my
Range As Range
Dim my
Cell As Range
Set my
Range = Selection
For Each my
Cell In my
Range
If Worksheet
Function.Count
If(my
Range, my
Cell.Value) > 1 Then
my
Cell.Interior.Color
Index = 36
End If
Next my
Cell
End Sub
Highlight the Active Row and ColumnĐây là những cách để triển khai mã code này cấp tốc chóng.
Mở VBE (ALT + F11).Di chuyển mang lại Project Explorer (Crtl + R, If hidden).Chọn workbook của chúng ta và nhấp đúp chuột vào tên một worksheet rõ ràng mà bạn có nhu cầu kích hoạt mã macro.Dán mã vào kia và lựa chọn “BeforeDouble
Click” tự (event drop down menu).Đóng VBE và chúng ta đã hoàn thành.
Hãy để ý rằng, khi vận dụng mã macro này bạn sẽ không thể điều chỉnh ô bằng cách nhấp lưu ban chuột.
Private Sub Worksheet_Before
Double
Click(By
Val Target As Range,
Cancel As Boolean)
Dim str
Range As String
str
Range = Target.Cells.Address và "," Target.Cells.Entire
Column.Address và "," & _
Target.Cells.Entire
Row.Address
Range(str
Range).Select
End Sub
Highlight vị trí cao nhất 10 ValuesChỉ lựa chọn 1 phạm vi với chạy mã macro này và nó đã làm khá nổi bật top 10 values với color xanh.
Sub Top
Ten()
Selection.Format
Conditions.Add
Top10
Selection.Format
Conditions(Selection.Format
Conditions.Count).S
t
First
Priority
With Selection.Format
Conditions(1)
.Top
Bottom = xl
Top10Top
.Rank = 10
.Percent = False
End With
With Selection.Format
Conditions(1).Font
.Color = -16752384
.Tint
And
Shade = 0
End With
With Selection.Format
Conditions(1).Interior
.Pattern
Color
Index = xl
Automatic
.Color = 13561798
.Tint
And
Shade = 0
End With
Selection.Format
Conditions(1).Stop
If
True = False
End Sub
Highlight Named RangesNếu chúng ta không chắc chắn rằng bao nhiêu phạm vi được hướng dẫn và chỉ định trong worksheet của công ty thì bạn có thể sử dụng mã này để triển khai nổi nhảy chúng.
Sub Highlight
Ranges()
Dim Range
Name As Name
Dim Highlight
Range As Range
On Error Resume Next
For Each Range
Name In Active
Workbook.Names
Set Highlight
Range = Range
Name.Refers
To
Range
Highlight
Range.Interior.Color
Index = 36
Next Range
Name
End Sub
Highlight Greater than ValuesSau khi chạy mã này, nó đang yêu cầu giá trị mà bạn muốn làm khá nổi bật các giá chỉ trị béo hơn.
Sub Highlight
Greater
Than
Values()
Dim i As Integer
i = Input
Box("Enter Greater Than Value", "Enter Value")
Selection.Format
Conditions.Delete
Selection.Format
Conditions.Add Type:=xl
Cell
Value,
Operator:=xl
Greater, Formula1:=i
Selection.Format
Conditions(Selection.Format
Conditions.Count).S
t
First
Priority
With Selection.Format
Conditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub
Highlight Lower than ValuesSau lúc chạy mã này, nó đang yêu ước giá trị mà bạn muốn làm rất nổi bật các quý giá thấp hơn.
Sub Highlight
Lower
Than
Values()
Dim i As Integer
i = Input
Box("Enter Lower Than Value", "Enter Value")
Selection.Format
Conditions.Delete
Selection.Format
Conditions.Add Type:=xl
Cell
Value,
Operator:=xl
Lower, Formula1:=i
Selection.Format
Conditions(Selection.Format
Conditions.Count).S
t
First
Priority
With Selection.Format
Conditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(217, 83, 79)
End With
End Sub
Highlight Negative NumbersChọn một pham vi các ô với chạy mã này. Nó sẽ kiểm tra mỗi ô vào phạm vi này và làm nổi bật tất cả các ô tất cả (negative numbers).
Sub highlight
Negative
Numbers()
Dim Rng As Range
For Each Rng In Selection
If Worksheet
Function.Is
Number(Rng) Then
If Rng.Value
Rng.Font.Color= -16776961
End If
End If
Next
End Sub
Highlight Specific TextGiả sử chúng ta có một tệp tài liệu lớn và bạn có nhu cầu kiểm tra một giá trị thế thể. Vào trường phù hợp này, bạn cũng có thể sử dụng mã này. Khi chúng ta chạy nó, màn hình sẽ hiện input đầu vào box để bạn nhập giá trị ao ước tìm kiếm.
Sub highlight
Value()
Dim my
Str As String
Dim my
Rg As Range
Dim my
Txt As String
Dim my
Cell As Range
Dim my
Char As String
Dim I As Long
Dim J As Long
On Error Resume Next
If Active
Window.Range
Selection.Count> 1 Then
my
Txt= Active
Window.Range
Selection.Address
Local
Else
my
Txt= Active
Sheet.Used
Range.Address
Local
End If
LInput: mix my
Rg= Application.Input
Box("please select the data
range:", "Selection Required", my
Txt, , , , , 8)
If my
Rg Is Nothing Then
Exit Sub
If my
Rg.Areas.Count > 1 Then
Msg
Box"not support multiple columns" Go
To
LInput
End If
If my
Rg.Columns.Count 2 Then
Msg
Box"the selected range can only contain two columns "
Go
To LInput
End If
For I = 0 to lớn my
Rg.Rows.Count-1
my
Str= my
Rg.Range("B1").Offset(I, 0).Value
With my
Rg.Range("A1").Offset(I, 0)
.Font.Color
Index= 1
For J = 1 to lớn Len(.Text)
Mid(.Text, J, Len(my
Str)) = my
Str
Then
.Characters(J, Len(my
Str)).Font.Color
Index= 3
Next
End With
Next I
End Sub
Highlight Cells with CommentsĐể làm khá nổi bật tất cả các ô cùng với việc áp dụng comments macro này.
Sub highlight
Comment
Cells()
Selection.Special
Cells(xl
Cell
Type
Comments).Select
Selection.Style= "Note"
End Sub
Highlight Alternate Rows in the SelectionVới việc làm trông rất nổi bật các hàng cầm cố thế, bạn cũng có thể dễ dàng đọc tài liệu hơn. Và vì điều này, chúng ta cũng có thể sử dụng mã VBA mặt dưới. Mã chỉ đơn giản làm khá nổi bật mỗi hàng sửa chữa thay thế trong phạm vi được chọn.
Sub highlight
Alternate
Rows()
Dim rng As Range
For Each rng In Selection.Rows
If rng.Row
Mod 2 = 1 Then
rng.Style= "20% -Accent1"
rng.Value= rng^ (1 / 3)
Else
End If
Next rng
End Sub
Highlight Cells with Misspelled WordsNếu bạn chạm chán khó khăn trong việc kiểm tra tất cả các mặt hàng về lỗi chủ yếu tả thì đó là một mã dành cho bạn. Mã sẽ đánh giá mỗi ô được chọn và làm khá nổi bật ô đó khi có lỗi chủ yếu tả.
Sub Highlight
Misspelled
Cells()
Dim rng As Range
For Each rng In Active
Sheet.Used
Range
If Not Application.Check
Spelling(word:=rng.Text) Then
rng.Style= "Bad" kết thúc If
Next rng
End Sub
Highlight Cells With Error in the Entire WorksheetMã này để giúp đỡ bạn làm khá nổi bật và đếm toàn bộ các ô tất cả lỗi.
Chỉ việc chạy mã này và mã sẽ trả lại một thông tin có số ô lỗi cùng làm rất nổi bật tất cả các ô đó.
Sub highlight
Errors()
Dim rng As Range
Dim i As Integer
For Each rng In Active
Sheet.Used
Range
If Worksheet
Function.Is
Error(rng) Then
i = i + 1 rng.Style = "bad"
End If
Next rng
Msg
Box "There are total " & i và " error(s) in this worksheet."
End Sub
Highlight Cells with a Specific Text in WorksheetMã này sẽ giúp bạn đếm những ô có mức giá trị cụ thể mà bạn sẽ đề cập với sau đó, mã sẽ làm trông rất nổi bật tất cả những ô đó.
Sub highlight
Specific
Values()
Dim rng As Range
Dim i As Integer
Dim c As Variant
c = Input
Box("Enter Value to lớn Highlight")
For Each rng In Active
Sheet.Used
Range
If rng = c Then
rng.Style = "Note"
i = i + 1
End If
Next rng
Msg
Box "There are total " & i &" "& c và " in this worksheet."
End Sub
Highlight all the Blank Cells Invisible SpaceĐôi khi bao gồm ô trống tuy thế chúng gồm một khoảng trống duy tuyệt nhất và bởi vậy, sẽ rất khó để phân biệt chúng. Mã này sẽ giúp đỡ bạn kiểm tra toàn bộ các ô vào worksheet cùng làm rất nổi bật các ô có khoảng trống độc nhất định.
Sub blank
With
Space()
Dim rng As Range
For Each rng In Active
Sheet.Used
Range
If rng.Value = " " Then
rng.Style = "Note"
End If
Next rng
End Sub
Highlight Max Value In The RangeMã này đang kiểm tra toàn bộ các ô được lựa chọn và làm rất nổi bật ô đó với mức giá trị phệ nhất.
Sub highlight
Max
Value()
Dim rng As Range
For Each rng In Selection
If rng = Worksheet
Function.Max(Selection) Then
rng.Style = "Good"
End If
Next rng
End Sub
Highlight Min Value In The RangeMã sẽ kiểm tra toàn bộ các ô được chọn và làm khá nổi bật ô đó với cái giá trị bé dại nhất.
Sub highlight
Min
Value()
Dim rng As Range
For Each rng In Selection
If rng = Worksheet
Function.Min(Selection) Then
rng.Style = "Good"
End If
Next rng
End Sub
Highlight unique ValuesCác mã này vẫn làm nổi bật tất cả các ô được lựa chọn mà có giá trị duy nhất.
Sub highlight
Unique
Values()
Dim rng As Range
Set rng = Selection
rng.Format
Conditions.Delete
Dim uv As Unique
Values
Set uv = rng.Format
Conditions.Add
Unique
Values
uv.Dupe
Unique = xl
Unique
uv.Interior.Color = vb
Green
End Sub
Highlight Difference in ColumnsSử dụng mã này chúng ta cũng có thể làm trông rất nổi bật sự khác biệt giữa 2 cột (các ô tương ứng).
Sub column
Difference()
Range("H7:H8,I7:I8").Select
Selection.Column
Differences(Active
Cell).Select
Selection.Style= "Bad"
End Sub
Highlight Difference in RowsSử dụng mã này bạn cũng có thể làm nổi bật sự không giống nhau giữa 2 hàng (các ô tương ứng).
Sub row
Difference()
Range("H7:H8,I7:I8").Select
Selection.Row
Differences(Active
Cell).Select
Selection.Style= "Bad"
End Sub
Printing Codes |
Những mã macro này sẽ giúp bạn tự động hóa in một số công việc mà rất có thể tiết kiệm rất nhiều thời gian.
Print CommentsSử dụng mã macro này kích hoạt cài đặt để in (cell comments) làm việc cuối trang. Ví dụ bạn phải in 10 trang, sau khoản thời gian sử dụng mã này bạn sẽ nhận được toàn bộ comments ở trang sau cuối thứ 11.
Sub print
Comments()
With Active
Sheet.Page
Setup
.print
Comments= xl
Print
Sheet
End
End With
End Sub
Print Narrow MarginSử dụng mã VBA này nhằm in giấy bao gồm lề hẹp. Khi chúng ta chạy mã macro này, mã sẽ tự động hóa thay thay đổi lề thành hẹp.
Xem thêm: Những Mẫu Chậu Rửa Chén Inox 304 Có Khung Chân Bán Chạy Nhất Tp Hcm
Sub print
Narrow
Margin()
With Active
Sheet.Page
Setup
.Left
Margin= Application
.Inches
To
Points(0.25)
.Right
Margin= Application.Inches
To
Points(0.25)
.Top
Margin= Application.Inches
To
Points(0.75)
.Bottom
Margin= Application.Inches
To
Points(0.75)
.Header
Margin= Application.Inches
To
Points(0.3)
.Footer
Margin= Application.Inches
To
Points(0.3)
End With
Active
Window.Selected
Sheets.Print
Out
Copies:=1, Collate:=True,
Ignore
Print
Areas:=False
End Sub
Print SelectionMã này để giúp đỡ bạn in phạm vi được chọn. Các bạn không yêu cầu phải dịch chuyển đến mục printing options và thiết lập phạm vi in. Bạn chỉ việc chọn một phạm vi và chạy mã này.
Sub print
Selection()
Selection.Print
Out
Copies:=1, Collate:=True
End Sub
Print Custom PagesThay vị sử dụng thiết đặt từ print options, chúng ta cũng có thể sử dụng mã này nhằm in phạm vi trang điều chỉnh.
Ví dụ bạn có nhu cầu từ trang 5 mang đến trang10. Bạn chỉ việc chạy mã VBA này với nhập trang ban đầu và trang kết thúc.
Sub print
Custom
Selection()
Dim startpage
As Integer
Dim endpage
As Integer
startpage= Input
Box("Please Enter Start Page number.", "Enter
Value")
If Not Worksheet
Function.Is
Number(startpage) Then
Msg
Box"Invalid Start Page number. Please try again.", "Error"
Exit Sub
End If
endpage= Input
Box("Please Enter kết thúc Page number.", "Enter
Value")
If Not Worksheet
Function.Is
Number(endpage) Then
Msg
Box"Invalid end Page number. Please try again.", "Error"
Exit Sub
End If
Selection.Print
Out
From:=startpage, To:=endpage, Copies:=1,
Collate:=True
End Sub
Worksheet Codes |
Những mã macro này để giúp đỡ bạn kiểm soát và thống trị worksheets theo một cách đơn giản và tiết kiệm tương đối nhiều thời gian.
Hide all but the Active WorksheetVí dụ bạn muốn ẩn tất cả các worksheets vào workbook của bạn ngoài worksheet đã hoạt động. Mã macro này sẽ giúp đỡ bạn làm cho điều này.
Sub Hide
Worksheet()
Dim ws As Worksheet
For Each ws In This
Workbook.Worksheets
If ws.Name This
Workbook.Active
Sheet.Name Then
ws.Visible = xl
Sheet
Hidden
End If
Next ws
End Sub
Unhide all Hidden WorksheetsMã này giành riêng cho việc nếu bạn muốn hiển thị tất cả các worksheets mà chúng ta đã ẩn trong mà trước.
Sub Unhide
All
Worksheet()
Dim ws As Worksheet
For Each ws In Active
Workbook.Worksheets
ws.Visible = xl
Sheet
Visible
Next ws
End Sub
Delete all but the Active WorksheetMã này khôn xiết hữu ích cho mình nếu bạn có nhu cầu xóa tất cả các worksheet quanh đó sheet sẽ hoạt động.
Khi các bạn chạy mã này, mã sẽ đối chiếu tên workwheet đang hoạt động với những worksheet không giống và sau đó xóa chúng.
Sub Delete
Worksheets()
Dim ws As Worksheet
For Each ws In This
Workbook.Worksheets
If ws.name This
Workbook.Active
Sheet.name Then
Application.Display
Alerts = False
ws.Delete
Application.Display
Alerts = True
End If
Next ws
End Sub
Protect all Worksheets InstantlyĐây là mã dành cho mình nếu bạn muốn protect những worksheet chỉ trong một lần.
Khi chạy mã macro này, bạn sẽ nhận được một input đầu vào box để nhập password. Sau khoản thời gian nhập password, click OK. And make sure to lớn take care about CAPS.
Sub Protect
All
Worskeets()
Dim ws As Worksheet
Dim ps As String
ps = Input
Box("Enter a Password.", vb
OKCancel)
For Each ws In Active
Workbook.Worksheets
ws.Protect Password:=ps
Next ws
End Sub
Resize All Charts in a Worksheet.Tạo các chart bao gồm cùng một kích cỡ. Mã macro này sẽ giúp đỡ bạn tạo toàn bộ các chart tất cả chung kích cỡ. Bạn cũng có thể thay đổi chiều cao và chiều rộng của chart bằng phương pháp thay đổi nó vào mã macro.
Sub Resize_Charts()
Dim i As Integer
For i = 1 to Active
Sheet.Chart
Objects.Count
With Active
Sheet.Chart
Objects(i)
.Width = 300
.Height = 200
End With
Next i
End Sub
Insert Multiple WorksheetsBạn có thể sử dụng mã này nếu bạn có nhu cầu thêm các worksheet vào workbook của khách hàng chỉ vào một bước.
Khi chúng ta chạy mã macro này, bạn sẽ nhận được input box nhằm nhập toàn bô sheet mà bạn có nhu cầu nhập.
Sub Insert
Multiple
Sheets()
Dim i As Integer
i = Input
Box("Enter number of sheets lớn insert.", "Enter
Multiple Sheets")
Sheets.Add After:=Active
Sheet, Count:=i
End Sub
Protect worksheetNếu bạn có nhu cầu protect worksheet, chúng ta cũng có thể sử dụng mã này.
Bạn chỉ việc nhập password của doanh nghiệp vào vào mã.
Sub Protect
WS()
Active
Sheet.Protect "mypassword", True, True
End Sub
Un-Protect WorksheetNếu bạn không thích protect worksheet, bạn cũng có thể sử dụng cơ mà macro này.
Bạn chỉ cần nhập password mà bạn đã áp dụng khi protect worksheet của bạn.
Sub Unprotect
WS()
Active
Sheet.Unprotect "mypassword"
End Sub
Sort WorksheetsMã này sẽ giúp bạn thu xếp worksheets trong workbook dựa vào tên của worksheet.
Sub Sort
Worksheets()
Dim i As Integer
Dim j As Integer
Dim i
Answer As Vb
Msg
Box
Result
i
Answer = Msg
Box("Sort Sheets in Ascending Order?" và Chr(10) _
& "Clicking No will sort in Descending Order", _
vb
Yes
No
Cancel + vb
Question + vb
Default
Button1, "Sort
Worksheets")
For i = 1 lớn Sheets.Count
For j = 1 to lớn Sheets.Count - 1
If i
Answer = vb
Yes Then
If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
Else
If i
Answer = vb
No Then
If UCase$(Sheets(j).Name)
Sheets(j).Move After:=Sheets(j + 1)
End If
End If
Next j
Next i
End Sub
Protect all the Cells With FormulasBạn hoàn toàn có thể sử dụng mã này nhằm protect cell with formula chỉ cách một cú click chuột.
Sub lock
Cells
With
Formulas()
With Active
Sheet
.Unprotect
.Cells.Locked = False
.Cells.Special
Cells(xl
Cell
Type
Formulas).Locked = True
.Protect Allow
Deleting
Rows:=True
End With
End Sub
Delete all Blank WorksheetsChạy mã này với mã đã kiểm tra tất cả các worksheets vào workbook đang chuyển động và xóa bọn chúng nếu bao gồm một worksheet trống.
Sub delete
Blank
Worksheets()
Dim Ws As Worksheet
On Error Resume Next
Application.Screen
Updating= False
Application.Display
Alerts= False
For Each Ws In Application.Worksheets
If Application.Worksheet
Function.Count
A(Ws.Used
Range) = 0 Then
Ws.Delete
End If
Next
Application.Screen
Updating= True
Application.Display
Alerts= True
End Sub
Unhide all Rows and ColumnsThay do hiển thị từng hàng và cột một biện pháp thủ công, chúng ta cũng có thể sử dụng mã này để triển khai chỉ vào một bước.
Sub Unhide
Rows
Columns()
Columns.Entire
Column.Hidden = False
Rows.Entire
Row.Hidden = False
End Sub
Save Each Worksheet as a Single PDFmã này chỉ đơn giản lưu toàn bộ worksheet vào một trong những tệp PDF riêng. Bạn chỉ cần biến đổi tên tệp tự mã này.
Sub Save
Workshet
As
PDF()
Dimws As Worksheet
For Each ws In Worksheetsws.Export
As
Fixed
Format xl
Type
PDF,
“ENTER-FOLDER-NAME-HERE" và ws.Name & ".pdf" Nextws
End Sub
Disable Page BreaksBạn có thể sử dụng mã này để vô hiệu hóa hóa ngắt trang. Mã dễ dàng và đơn giản chỉ vô hiệu hóa hóa ngắt trang từ các workbook đang mở.
Sub Disable
Page
Breaks()
Dim wb
As Workbook
Dim wks
As Worksheet
Application.Screen
Updating= False
For Each wb
In Application.Workbooks
For Each Sht
In wb.Worksheets
Sht.Display
Page
Breaks= False
Next Sht
Next wb
Application.Screen
Updating= True
End Sub
Workbook Codes |
Những mã này để giúp bạn thực hiện các các bước workbook một cách đơn giản và dễ dàng và không hẳn tốn các công sức.
Create a Backup of a Current WorkbookĐây là một trong những mã macro bổ ích nhất có thể giúp chúng ta lưu một tệp hỗ trợ cho workbook của bạn.
Mã vẫn lưu một tệp cung ứng trực tiếp với tệp lúc này được lưu với mã cũng sẽ bổ sung ngày với tên của tệp.
Sub File
Back
Up()
This
Workbook.Save
Copy
As Filename:=This
Workbook.Path & _
"" & Format(Date, "mm-dd-yy") & " " và _
This
Workbook.name
End Sub
Close all Workbooks at OnceBạn thực hiện mã này để đóng tất cả các workbook vẫn mở.
Đầu tiên, mã sẽ đánh giá từng workbook một cùng đóng chúng lại. Giả dụ có ngẫu nhiên worksheet nào chưa được lưu, các bạn sẽ nhận được thông tin để lưu.
Sub Close
All
Workbooks()
Dim wbs As Workbook
For Each wbs In Workbooks
wbs.Close Save
Changes:=True
Next wb
End Sub
Copy Active Worksheet into a New WorkbookVí dụ, nếu bạn muốn sao chép worksheet đang chuyển động vào một workbook mới, bạn chỉ việc chạy mã macro cùng mã sẽ tiến hành cho bạn.
Điều này máu kiệm không ít thời gian.
Sub Copy
Worksheet
To
New
Workbook()
This
Workbook.Active
Sheet.Copy _
Before:=Workbooks.Add.Worksheets(1)
End Sub
Active Workbook in an EmailSử dụng mã macro này để gửi active workbook của công ty bằng e-mail một cách nhanh chóng.
Bạn bao gồm thể biến đổi tên, email, nội dung trong mã và nếu bạn muốn gửi trực tiếp e-mail này, thực hiện “.Send” thay vày “.Display”.
Dưới đó là 9 thủ thuật thịnh hành nhất lúc viết VBA trong Excel. VBA vào Excel gồm vô số kỹ năng tín toán cấu hình thiết lập và từ bỏ động. Thường thì mã code có thể chạy hàng trăm ngàn hoặc thậm chí hàng trăm dòng. Lúc độ phức tạp và form size của mã code tăng lên, câu hỏi viết mã nhanh và tác dụng mà vẫn khiến cho đồng nghiệp dễ hiểu ngày càng trở đề nghị quan trọng. Nếu khách hàng làm được, bạn sẽ trở thành tài sản vô giá cho nhóm/ doanh nghiệp trong việc gia hạn và phân phát triển quy mô Excel VBA.

1. Nhận xét vào trong dòng code sẽ giúp bạn đọc và hiểu dễ hơn
Bạn đã khi nào mở mô hình VBA của người cùng cơ quan lên với dành một giờ tiếp sau để nỗ lực tìm ra đúng chuẩn cách buổi giao lưu của nó chưa? Vậy thì nên tưởng tượng bạn sẽ được đánh giá rất bài bản nếu ai ai cũng hiểu được mã code ví dụ của các bạn ngay cả khi chúng ta không cần giải thích.
Nhận xét là yếu đuối tố đặc biệt quan trọng nhất lúc viết VBA vì các bạn sẽ dễ dàng hiểu được hoàn toàn đoạn code đó sau vài tháng. Bạn sẽ gây tuyệt vời với người cùng cơ quan và lập cập tạo uy tín trong việc chuẩn bị tài liệu xuất sắc, cho nên vì thế bạn không mất quá nhiều thời gian đào tạo cho những người dùng vào tương lai.

2. Sử dụng những tên ví dụ và tương xứng để đặt cho các biến cùng hàm
Nếu tên biến đổi và hàm VBA được diễn giải cụ thể thì sẽ giúp người dùng tiết kiệm ngân sách một lượng lớn thời hạn và cho phép họ quan sát và theo dõi rõ ràng kết cấu và luồng của mã code. Tên phát triển thành hoặc tên hàm như “test1” hoặc “first_integer” sẽ gây nên sự khó khăn hiểu cho phần lớn ai nỗ lực đọc mã VBA của bạn.
Quy trình sau đây viết phần trăm lạm phát của Hoa Kỳ vào ô vẫn hoạt động. Hãy coi ví dụ đồ vật hai cụ thể hơn những so cùng với ví dụ đầu tiên như nào!Ví dụ sai



3. Hãy lập kế hoạch công việc để khiến cho bạn tạo mã VBA đơn giản, hiệu quả
Không có gì quá xa lạ khi chúng ta đã viết mã được một nửa dự án rồi mới nhận thấy rằng mình nên kết cấu nó theo cách khác hoặc chế tạo ra một công dụng riêng mang đến các bộ phận cụ thể trong mã của bạn. Lên planer cho cấu tạo VBA của bạn theo số đông yêu ước mà bạn có nhu cầu nó đạt được, đầy đủ vòng lặp nào các bạn sẽ cần, v.v. Sẽ giúp đỡ bạn tiết kiệm thời gian về lâu dài. Nó cũng cho chính mình thời gian để suy nghĩ về phần đa lỗi tiềm ẩn rất có thể phát sinh trong quy trình viết mã cùng cách bạn sẽ giải quyết.

4. Thực hiện Macro để nhanh chóng tìm ra cú pháp
Đối với phần đông mọi người, macro cho họ cái nhìn thứ nhất về quả đât VBA và mã hóa. Ngay lập tức cả đối với những thiết kế viên bao gồm kinh nghiệm, macro là 1 cách hoàn hảo và tuyệt vời nhất giúp hiểu cấp tốc cú pháp VBA quan trọng để tiến hành một hàm hoặc phương thức cụ thể.
Giả sử bạn không biết cách lưu tệp VBA. Bằng cách nhấn Macro Record, chúng ta có thể thực hiện các bước theo cách thủ công bằng tay và trình sửa đổi VBA sẽ ghi lại các bước đó bằng mã hóa.Thật ảo diệu! tiếng đây, chúng ta có thể sử dụng lại và kiểm soát và điều chỉnh mã theo quá trình của riêng mình.

5. Đừng phụ thuộc vào macro, hãy học bí quyết viết mã của riêng bạn
Như vẫn đề cập sinh sống trên, macro vô cùng hữu dụng trong bài toán học cách viết một số trong những đoạn mã nhất định. Tuy nhiên, điều quan trọng đặc biệt là chúng ta phải nhận biết rằng các macro vốn không bình an và không tương xứng trong tương lai do chúng được mã hóa cứng cùng không thể tương xứng với những đổi khác tương lai trong cấu tạo trang tính.
Giả sử chúng ta đã ghi lại một macro triển khai các chuyển đổi định dạng khác biệt cho trang tính. 1 phần thông qua mã, nó chọn cột I, và kế tiếp xóa cột I. Giả sử sau đó trong thời điểm tháng tiếp theo, tệp bổ sung cập nhật một cột; bây chừ thì macro của các bạn sẽ xóa sai cột. Học giải pháp tự viết mã sẽ cho phép bạn tạo các vòng lặp với tìm tìm cột đúng mực trước lúc xóa nó.

6. Sử dụng Option Explicit để tránh bị thiếu giá bán trị
Đặt đoạn code “Option Explicit” sinh sống đầu mô hình VBA là 1 cách có lợi để tránh lỗi chính tả trong mã.
Trong ví dụ phía bên trái phía dưới, Option Explicit ko được bật. Mã chạy không lỗi, mà lại nó luôn trả về tác dụng là 0.Tại sao? lý do là do phát triển thành Month
Incme bị viết sai chủ yếu tả và bởi đó không có gì để tham chiếu. Gía trị 0 phân tách cho ngẫu nhiên một vật gì thì luôn luôn luôn bằng không.
Với lấy ví dụ như chạy mã sản phẩm hai, Option Explicit phát hiện tại rằng bọn họ có các biến chưa khẳng định trong đoạn mã cùng trả về Lỗi biên dịch. Nó chỉ ra biến không được khai báo và thông tin cho họ biết vấn đề. Bạn nên luôn luôn luôn thực hiện Option Explicit sinh hoạt đầu quy mô trước bất kỳ quy trình như thế nào của mình.

7. Cải thiện tốc độ VBA bằng phương pháp giữ những lựa chọn đối tượng người tiêu dùng ở mức buổi tối thiểu
Nếu các bạn mới làm cho quen với VBA với đang thắc mắc vì sao mã của khách hàng chạy rất lờ lững thì việc sử dụng quá nhiều tính năng .Select hoàn toàn có thể là vì sao đáng xem xét đầu tiên. Yêu cầu tránh lựa chọn đối tượng người tiêu dùng trừ khi thực sự đề nghị thiết, đặc biệt khi cách xử lý lượng lớn tài liệu hoặc vòng lặp. Bài toán chọn các đối tượng người sử dụng trong VBA rất là chậm và thường không phải thiết. Những macro được lưu lại thường bao hàm rất nhiều công dụng .Select, bởi vì vậy đặc biệt quan trọng là phải tò mò cách kiêng điều này.
Trong ví dụ thứ nhất phía dưới, chúng ta đang nỗ lực tìm tổng của 1.000 ô đang làm việc trong trang tính. Từng lần bọn họ tham chiếu một ô mới, họ chọn nó, và tiếp nối lấy giá trị của nó. Mặc dù nhiên, câu hỏi lựa lựa chọn trang tính hoặc ô là không yêu cầu thiết. Bạn có thể lấy giá trị ô một cách đối chọi giản. áp dụng bộ đếm thời hạn để lưu lại thời gian thực hiện cho vấn đề chạy từng quy trình, Hãy cùng xem ví dụ đồ vật hai cấp tốc hơn 50 lần!

8. Sử dụng lại các công dụng thông thường để tiết kiệm thời gian

Cách hữu dụng để giảm thời gian bạn giành cho việc viết mã hoặc xây dựng quy mô là giữ các quy trình (thủ tục Subs) VBA phổ cập nhất của chúng ta ở một nơi. Dưới đây là một ví dụ như từ bài viết “10 các bước VBA mặt hàng đầu” của chúng tôi, lấy các ô đang chọn, hủy thích hợp nhất bọn chúng và áp dụng những tiêu đề tương đương nhau cho mỗi ô. Thậm chí chúng ta cũng có thể gán phím tắt mang lại macro để sử dụng nhanh hơn nữa.
Hãy tham khảo blog của cửa hàng chúng tôi về cách sử dụng lại mã (trong phần tới), tập trung vào các phần hỗ trợ và mô hình mã hóa cá nhân.

9. Liên tục kiểm tra mã để tránh lỗi run-time errors

Thủ thuật phía trên rất có thể áp dụng cho hầu hết các dự án công trình tại chỗ làm việc, mà lại nó quan trọng liên quan đến mã hóa với VBA mang lại Excel. Bình chọn mã để phát hiện những lỗi và những ngoại lệ rất có thể phát sinh trong thời hạn chạy bằng cách bắt lỗi phù hợp (xem bài viết của công ty chúng tôi về những lỗi vào VBA tại đây).
Một thiết kế viên đề nghị thử bước đầu điều này. Chúng ta nên tự bình chọn mã, sau đó kiểm tra nó trong môi trường thiên nhiên không trực tiếp hoặc ko tác động.
Sau khi cảm giác đã hoàn thiện, bạn nên để đồng nghiệp kiểm tra quy mô Excel của mình mà không đề nghị hướng dẫn họ ngẫu nhiên điều gì về cách nhấn nút xuất xắc nhập đầu vào. Chỉ việc nhìn vào là họ vẫn hiểu được cách mô hình hoạt động. Kiểm tra để giúp đỡ bạn biết những gì sẽ xẩy ra khi mã của khách hàng hoạt động.