Key bản quyền chính hãng Microsoft, không dùng tool cr@ck, h@ck, lậu dễ lây virus, phần mềm độc hại,…
Phí duy trì server cao: lượng các bạn yêu cầu kích Win, Office quá nhiều, truy cập đòi băng thông cao nên mình không bù lại được chi phí hoạt động. Hiện admin tự bỏ tiền túi ra.
Thể hiện mình là người văn minh và tính chia sẻ vì cộng đồng.
Khi bạn tạo trực quan Power Automate trong báo cáo Power BI, người dùng cuối của bạn có thể chạy quy trình tự động, chỉ bằng cách nhấp vào một nút trong báo cáo của bạn. Hơn nữa, quy trình có thể là dữ liệu theo ngữ cảnh, có nghĩa là các đầu vào của quy trình có thể thay đổi, dựa trên các bộ lọc mà người dùng cuối đặt.
Tải hình ảnh
Để bắt đầu, bạn tải hình ảnh từ AppSource và nhập nó vào báo cáo Power BI. Bạn cần tải nó xuống cho mọi báo cáo bạn muốn sử dụng vì nó không được thêm vào Power BI Desktop.
1. Trong ngăn Visualizations, chọn More options (…) > Get more visuals.
2. Trong AppSource, tìm kiếm Power Automate > Add.
Khi nó được nhập thành công, bạn sẽ thấy biểu tượng Power Automate trong ngăn Visualization.
Thêm trực quan Power Automate
1. Chọn biểu tượng Power Automate.
Nó tự động được thêm vào trang báo cáo hiện tại của bạn, với hướng dẫn bắt đầu.
2. Cuộn, thay đổi kích thước hình ảnh hoặc chọn biểu tượng Focus mode để xem tất cả các hướng dẫn.
3. Sau khi bạn đã xem các hướng dẫn, hãy thay đổi kích thước của nút và đặt nó vào vị trí bạn muốn trên báo cáo.
Chỉnh sửa quy trình
1. Với quy trình đã chọn, hãy thêm bất kỳ trường dữ liệu nào vào vùng Power Automate Data, được sử dụng làm đầu vào cho quy trình.
2. Chọn More options (…) > Edit để định cấu hình nút:
3. Trong chế độ chỉnh sửa hình ảnh, bạn có thể chọn một quy trình hiện có để áp dụng cho nút hoặc tạo một quy trình mới để áp dụng cho nút.
4. Bạn có thể bắt đầu lại từ đầu hoặc bắt đầu với một trong các mẫu dựng sẵn làm ví dụ. Để bắt đầu lại từ đầu, hãy chọn New > Instant cloud flow:
5. Chọn New step.
6. Tại đây, bạn có thể chọn một hành động tiếp theo hoặc chỉ định một Control nếu bạn muốn chỉ định logic bổ sung để xác định hành động tiếp theo.
7. Theo tùy chọn, bạn có thể tham chiếu (các) trường dữ liệu dưới dạng nội dung động nếu bạn muốn quy trình dữ liệu theo ngữ cảnh. Ví dụ này sử dụng trường dữ liệu Region để tạo một mục trong danh sách SharePoint. Dựa trên lựa chọn của người dùng cuối, Region có thể có nhiều giá trị hoặc chỉ một giá trị.
8. Sau khi đã định cấu hình logic quy trình, bạn có thể đặt tên cho quy trình và chọn Save.
9. Chọn nút mũi tên để chuyển đến trang Details của quy trình bạn vừa tạo:
Đây là trang Details cho quy trình đã lưu:
10. Chọn nút Apply để đính kèm quy trình bạn đã tạo vào nút của mình.
Định dạng quy trình
Theo tùy chọn, bạn có thể thay đổi văn bản nút, màu phông chữ, cỡ chữ hoặc màu tô của nút. Các tùy chọn này cùng với các cài đặt khác có sẵn trong ngăn Format:
Kiểm tra quy trình
Sau khi bạn đã áp dụng quy trình cho nút, chúng tôi khuyên bạn nên thử nghiệm quy trình đó trước khi chia sẻ với người khác. Các quy trình Power BI này chỉ có thể chạy trong ngữ cảnh của báo cáo Power BI. Bạn không thể chạy trong ứng dụng web Power Automate hoặc ở nơi khác.
Nếu quy trình của bạn là dữ liệu theo ngữ cảnh, bạn sẽ muốn kiểm tra xem các lựa chọn bộ lọc trong báo cáo tác động như thế nào đến kết quả quy trình.
1. Để kiểm tra quy trình ở chế độ chỉnh sửa báo cáo, hãy chọn Back to report, sau đó nhấn Ctrl trong khi bạn chọn nút để chạy quy trình.
Nút thể hiện rằng quy trình đã được kích hoạt.
2. Để check xem quy trình đã chạy thành công hay chưa, hãy chọn menu More commands (…) menu > Details trong quy trình đã được kích hoạt:
3. Trên trang Details, bạn có thể xem lịch sử chạy và trạng thái cho quy trình:
Chia sẻ quy trình
Khi quy trình đang chạy thành công, bạn có thể chia sẻ với người đọc báo cáo của mình.
1. Chọn Edit trong phần Run only users:
2. Chỉ định người dùng hoặc nhóm nào bạn muốn cấp quyền truy cập chạy:
Cấp cho người dùng quyền chỉnh sửa
Ngoài ra, bạn có thể cấp cho bất kỳ người dùng nào quyền chỉnh sửa vào quy trình, không chỉ quyền chạy.
1. Chọn Share và chỉ định người dùng hoặc nhóm mà bạn muốn thêm làm chủ sở hữu:
Hạn chế và cân nhắc
Nhập thủ công bổ sung cho nút không được hỗ trợ tại thời điểm này.
Hiện tại chỉ có một số mẫu dựng sẵn.
Hình ảnh không được hỗ trợ cho các tình huống nhúng PaaS cũng như trong Sovereign Cloud
Khi làm việc với pivot tables, có một ngăn tác vụ được sử dụng để thêm hoặc xóa các trường vào các vùng khác nhau của bảng. Đây là danh sách Pivot Table Fields và bài viết này sẽ chia sẻ với bạn ba mẹo giúp bạn sử dụng nó hiệu quả hơn.
Mẹo #1: Thay đổi bố cục danh sáchtrường
Mẹo đầu tiên liên quan đến việc sửa đổi cách bố trí ngăn. Bố cục mặc định của ngăn này như được hiển thị ở trên, với các trường được liệt kê ở trên và các vùng ở dưới. Nhưng bố cục có thể được thay đổi thành một vài cấu hình khác. Để thay đổi bố cục, chỉ cần nhấp vào menu thả xuống cài đặt. Đó là nút có biểu tượng bánh răng trên đó.
Trong số các bố cục thay thế được cung cấp, bố cục các trường và vùng đặt cạnh nhau được cho là dễ thao tác và quan sát nhất. Đó là bởi vì nó cho phép nhiều trường được hiển thị ở dạng danh sách mà không cần cuộn, điều này thực sự hữu ích khi có nhiều trường để bạn lựa chọn.
Bố cục này cũng hữu ích khi bạn đang sử dụng Power Pivot. Các tùy chọn bố cục khác ít phổ biến hơn, nhưng vẫn hữu ích, là chỉ các trường, chỉ các khu vực và chỉ các khu vực xếp chồng lên nhau.
Các tính năng khác trong menu Settings
Ngoài việc thay đổi bố cục của ngăn, menu cài đặt cũng cho phép bạn thực hiện một số việc khác:
1. Nếu bạn đang sử dụng Power Pivot, bạn có thể thu gọn và mở rộng các table fields.
2. Bạn có thể sắp xếp các trường theo thứ tự bảng chữ cái.
3. Bạn có thể sắp xếp theo thứ tự nguồn dữ liệu. (Đây sẽ là các cột trong tập dữ liệu của bạn, từ trái sang phải).
Mẹo #2: Bỏ khóa và di chuyển danh sách trường
Theo mặc định, danh sách trường được gắn vào bên phải trang tính của bạn. Nhưng bạn có thể di chuyển nó. Di con trỏ đến gần tiêu đề của ngăn cho đến khi nó biến thành các mũi tên chéo. Sau đó nhấp chuột trái và kéongăn đến vị trí mong muốn của bạn.
Bây giờ, bạn có thể thay đổi kích thước của nó theo ý muốn. Bạn cũng có thể gắn khung vào bên trái của trang tính. Nếu ngăn được thả tự do, bạn có thể double-click vào trên cùng để ngay lập tức gắn nó lại ở bất kỳ phía nào.
Một tính năng khác cần lưu ý là bạn có thể di chuyển ngăn hoàn toàn khỏi ứng dụng nếu bạn có nhiều màn hình. Chẳng hạn, bạn có thể có trang tính trên một màn hình và danh sách các trường trên màn hình khác.
Mẹo #3: Mở lại danh sách trường khi đóng
Đôi khi bạn có thể vô tình làm cho danh sách Pivot Table Fieldsbiến mất. Hoặc bạn có thể cố ý đóng nó nhưng không biết cách mở lại. Nếu bạn đã đóng cửa sổ, việc nhấp vào bất kỳ đâu trong pivot table sẽ KHÔNG đưa nó trở lại. Thay vào đó, bạn có thể mở lại bằng một trong hai cách sau:
1. Nhấp chuột phải vào pivot table và sau đó chọn Show Field List.
2. Bấm vào nút Field List trên tab PivotTable Analyze hoặc Options.
Bonus: Quản lý nhiều ngăn tác vụ
Một mẹo khác được đề cập là về mối quan tâm có nhiều ngăn tác vụ mở đồng thời. Trong hình ảnh bên dưới, bạn có thể thấy rằng ngăn tác vụ Format Chart Area đang mở và nó đã che khuất ngăn Trường Bảng Pivot. Để điều hướng giữa hai biểu tượng, hãy nhấp vào các biểu tượng được căn chỉnh theo chiều dọc ở phía bên phải của ngăn. Biểu tượng trên cùng cho biết ngăn Pivot Chart Fields và biểu tượng dưới cùng là ngăn Format Chart Area. Nếu mở nhiều ngăn hơn, chúng sẽ xuất hiện bên dưới chúng dưới dạng các tab dọc.
Nếu bạn đã từng ở trong tình huống mà các công thức trong bảng tính của bạn không được tự động tính toánnhư chúng thường xảy ra, bạn biết nó có thể bực bội như thế nào.
Nếu bạn đang làm việc với một trang tính được cho là tính toán lại các giá trị khi bạn nhập dữ liệu và nhấn enter, bạn có thể tự hỏi điều gì đang xảy ra khi nó không cập nhật như bình thường. Một lý do tiềm ẩn cho điều này có thể là do Excel không ở Chế độ tính toán tự động (Automatic Calculation Mode).
Để kiểm tra Excel đang ở chế độ tính toán nào, hãy chuyển đến tab Formulas và nhấp vào Calculation Options. Thao tác này sẽ hiển thị một menu với ba lựa chọn. Chế độ hiện tại sẽ có một dấu kiểm bên cạnh nó. Trong hình ảnh bên dưới, bạn có thể thấy rằng Excel đang ở Chế độ tính toán thủ công (Manual Calculation Mode).
Khi Excel ở chế độ Manual Calculation, các công thức trong worksheet của bạn sẽ không tự động tính toán. Bằng cách thay đổi chế độ thành Tự động (Automatic), bạn có thể nhanh chóng và dễ dàng khắc phục sự cố của mình.
Giới thiệu về các tùy chọn tính toán
Cài đặt tính toán là cài đặt cấp ứng dụng. Điều đó có nghĩa là bất kể bạn đang làm việc trong workbook nào, cài đặt sẽ vẫn như cũ cho đến khi bạn thay đổi nó. Trong trường hợp đó, bạn có thể có một worksheet tự động cập nhật trên máy tính làm việc của bạn, nhưng không phải trên máy tính ở nhà của bạn. Đó là do cài đặt trên hai máy tính khác nhau.
Ngoài cài đặt Tự động (Automatic) và Thủ công (Manual), có một tùy chọn thứ ba để chọn. Đây là tùy chọn Tự động ngoại trừ bảng dữ liệu(Automatic Except for Data Tables). Lựa chọn này không đề cập đến các bảng Excel bình thường mà bạn làm việc thường xuyên. Bạn có thể tìm nó trên tab Data, bên dưới nút What-If Scenarios. Vì vậy, trừ khi bạn đang làm việc với các bảng dữ liệu đó, không có khả năng bạn cố tình thay đổi cài đặt thành tùy chọn đó.
Ngoài việc tìm cài đặt Calculation trên tab Data, bạn cũng có thể tìm cài đặt này trên menu Excel Options. Đi tới File, rồi đến Options, rồi Formulas để xem các tùy chọn cài đặt tương tự trong cửa sổExcel Options. Trong Manual Option, bạn sẽ thấy checkbox để tính toán lạiworkbooktrước khi lưu, đây là cài đặt mặc định. Đó là một điều tốt vì bạn muốn dữ liệu của mình được tính toán chính xác trước khi lưu tệp.
Tại sao tôi nên sử dụng chế độ tính toán thủ công (Manual Calculation Mode)?
Nếu bạn đang thắc mắc tại sao lại muốn thay đổi phép tính từ Automaticto Manual, thì có một lý do chính. Khi làm việc với các tệp lớn tính toán chậm, việc tính toán lại liên tục bất cứ khi nào thay đổi được thực hiện đôi khi có thể làm chậm hệ thống của bạn. Do đó, đôi khi mọi người sẽ chuyển sang chế độManual trong khi làm việc thông qua các thay đổi trên trang tính có nhiều dữ liệu, và sau đó sẽ chuyển trở lại.
Khi bạn đang ở chế độ Manual Calculation, bạn có thể thực hiện phép tính bất kỳ lúc nào bằng cách sử dụng nút Calculate Nowtrên tab Formulas.
Phím tắt cho Calculate Now là F9 và nó sẽ tính toán toàn bộworkbook. Nếu bạn chỉ muốn tính toán worksheethiện tại, bạn có thể chọn nút bên dưới Calculate Sheet. Phím tắt là Shift + F9.
Khi bạn vô tình thay đổi sang chế độ tính toán thủ công
Nếu bạn thấy rằng workbook của mình không tự động tính toán, nhưng bạn không cố ý thay đổi chế độ, một lý do khiến nó có thể đã thay đổi là domacro.
Tuy nhiên, vấn đề KHÔNG phải do tất cả các macro gây ra. Đó là một dòng mã cụ thể mà nhà phát triển có thể sử dụng để giúp macro chạy nhanh hơn.
Dòng mã VBA sau đây yêu cầu Excel thay đổi sang chế độManual Calculation.
Application.Calculation = xlCalculationManual
Đôi khi tác giả của macro sẽ thêm dòng đó vào đầu để Excel không cố tính toán trong khi macro chạy. Sau đó, cài đặt sẽ được thay đổi lại ở cuối macro với dòng sau.
Application.Calculation = xlCalculationAutomatic
Cách này có thể hoạt động tốt đối với các workbook lớn tính toán chậm.
Tuy nhiên, sự cố phát sinh khi macro không hoàn tất — có thể do lỗi, sự cố chương trình hoặc sự cố hệ thống không mong muốn. Macro thay đổi cài đặt thành Manual và nó không bị thay đổi như cũ.
Do đó, nếu bạn đang sử dụng kỹ thuật này với các macro của mình, bạn nên suy nghĩ về việc giảm thiểu vấn đề này. Và cũng cảnh báo về khả năng Excel được để ở chế độ tính toán thủ công.
Bạn KHÔNG nên thay đổi thuộc tính Calculation bằng code trừ khi bạn thực sự cần. Điều này sẽ giúp ngăn chặn lỗi cho người dùng macro của bạn.
Hôm nay lequocthai.com xin gửi đến các bạn 100 code VBA Excel rất hữu ích, mình sưu tầm từ các diễn đàn nước ngoài. Bạn có thể sử dụng những mã code này ngay cả khi bạn chưa từng sử dụng VBA trước đây.
Nhưng điều đầu tiên phải biết là:
Mã Macro là gì?
Trong Excel, mã macro là một mã lập trình được viết bằng ngôn ngữ VBA (Visual Basic for Applications).
Ý tưởng đằng sau việc sử dụng mã là để tự động hóa một hành động mà nếu không bạn phải thực hiện thủ công trong Excel.
Ví dụ, bạn có thể sử dụng một mã chỉ để in một phạm vi ô cụ thể chỉ với một cú nhấp chuột thay vì chọn theo thứ tự -> File Tab -> Print -> Print Select -> OK Button.
Sử dụng mã Macro trong Excel
Trước khi sử dụng những mã này, đảm bảo rằng bạn có Developer Tab trên thanh Excel để truy cập VB Editor. Hoặc nhấn phím tắt Alt+F11
Sau khi bạn kích hoạt Developer Tab…
… bạn có thể sử dụng các bước dưới đây để dán mã VBA vào VB Editor.
Di chuyển đến developer tab của bạn và nhấp chọn “Visual Basic”.
Phía bên trái trên “Project Window”, nhấp chuột phải vào tên workbook của bạn và chèn vào một module mới.
Dán mã code của bạn vào trong module đó và đóng lại.
Bây giờ, di chuyển đến developer tab và nhấp chuột vào Macro.
Macro sẽ hiển thị một cửa sổ danh sách các macro có trong tệp của bạn, từ đó bạn có thể chạy các macro có trong danh sách đó.
BASIC CODE
Những mã code VBA này sẽ giúp bạn thực hiện một số công việc cơ bản trong nháy mắt mà bạn thường làm trên bảng tính.
Add Serial Numbers (đánh số thự tự 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ị input box để bạn nhập tối đa số serial và sau đó, nó sẽ chèn các số vào cột theo thứ tự.
Sub AddSerialNumbers()
Dim i As Integer
On Error GoTo Last
i = InputBox(“Enter Value”, “Enter Serial Numbers”)
For i = 1 To i
ActiveCell.Value = i
ActiveCell.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 sẽ hiển thị một input box và bạn phải nhập số cột mà bạn muốn chèn.
Sub InsertMultipleColumns()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireColumn.Select
On Error GoTo Last
i = InputBox(“Enter number of columns to insert”, “Insert Columns”)
Sau khi chạy mã macro, màn hình sẽ hiển thị một input box và bạn phải nhập số hàng mà bạn muốn chèn.
Sub InsertMultipleRows()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireRow.Select
On Error GoTo Last
i = InputBox(“Enter number of columns to insert”, “Insert
Columns”)
For j = 1 To i
Selection.Insert Shift:=xlToDown,
CopyOrigin:=xlFormatFromRightorAbove
Next j
Last:Exit Sub
End Sub
Auto Fit Columns (tự động canh các cột)
Nhanh chóng tự động khớp tất cả các hàng trong worksheet của bạn.
Mã macro này sẽ chọn tất cả các ô trong worksheet và tự động khớp ngay lập tức các cột.
Sub AutoFitColumns()
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
Auto Fit Rows (tự động canh các dòng)
Bạn có thể sử dụng mã code này để tự động khớp tất cả các hàng trong worksheet.
Khi bạn chạy mã này, nó sẽ chọn tất cả các ô trong worksheet và tự động khớp ngay lập tức các hàng.
Sub AutoFitRows()
Cells.Select
Cells.EntireRow.AutoFit
End Sub
Remove Text Wrap (bỏ chế độ wrap text)
Mã code này sẽ giúp bạn xóa text wrap khỏi toàn bộ worksheet với một cái nhấp chuột. Đầu tiên nó sẽ chọn tất cả các cột và sau đó xóa text wrap và tự động khớp các hàng và cột.
Sub RemoveWrapText()
Cells.Select
Selection.WrapText = False
Cells.EntireRow.AutoFit
Cells.EntireColumn.AutoFit
End Sub
Unmerge Cells (không kết nối các ô)
Chọn các ô và chạy mã này, nó sẽ không sát nhập tất cả các ô vừa chọn với dữ liệu bị mất của bạn.
Sub UnmergeCells()
Selection.UnMerge
End Sub
Open Calculator (mở máy tính trên excel)
Trong 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ừ Excel cho việc tính toán.
Sub OpenCalculator()
Application.ActivateMicrosoftApp Index:=0
End Sub
Add Header/Footer Date (thêm ngày ở chân trang/đầu trang)
Sử dụng mã này để bổ sung ngày vào phần header và footer trong worksheet.
Bạn có thể điều chỉnh mã này để đổi từ header sang footer.
Sub dateInHeader()
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “&D”
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
End With
ActiveWindow.View = xlNormalView
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ã dành cho bạn.
Chạy mã này, nhập giá trị tùy chỉnh vào input box. Để thay đổi liên kết của header hoặc footer, bạn có thể điều chỉnh mã.
Sub customHeader()
Dim myText As Stringmy
Text = InputBox(“Enter your text here”, “Enter Text”)
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = myText
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
End With
End Sub
Những mã VBA này sẽ giúp bạn định dạng các ô và phạm vi bằng cách sử dụng một số 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ẽ kiểm tra mỗi ô 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ể thay đổi màu sắc từ mã này.
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
Highlight the Active Row and Column
Đây là những bước để thực hiện mã code này nhanh chóng.
Mở VBE (ALT + F11).
Di chuyển đến Project Explorer (Crtl + R, If hidden).
Chọn workbook của bạn và nhấp đúp chuột vào tên một worksheet cụ thể mà bạn muốn kích hoạt mã macro.
Dán mã vào đó và chọn “BeforeDoubleClick” từ (event drop down menu).
Đóng VBE và bạn đã hoàn thành.
Hãy lưu ý rằng, khi áp dụng mã macro này bạn sẽ không thể điều chỉnh ô bằng cách nhấp đúp chuột.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,
Chọn một pham vi các ô và chạy mã này. Nó sẽ kiểm tra mỗi ô trong phạm vi này và làm nổi bật tất cả các ô có (negative numbers).
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
Highlight Specific Text
Giả sử bạn có một tệp dữ liệu lớn và bạn muốn kiểm tra một giá trị cụ thể. Trong trường hợp này, bạn có thể sử dụng mã này. Khi bạn chạy nó, màn hình sẽ hiện input box để bạn nhập giá trị muốn tìm kiếm.
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(“please select the data
range:”, “Selection Required”, myTxt, , , , , 8)
If myRg Is Nothing Then
Exit Sub
If myRg.Areas.Count > 1 Then
MsgBox”not support multiple columns” GoToLInput
End If
If myRg.Columns.Count <> 2 Then
MsgBox”the selected range can only contain two columns “
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)
Mid(.Text, J, Len(myStr)) = myStrThen
.Characters(J, Len(myStr)).Font.ColorIndex= 3
Next
End With
Next I
End Sub
Highlight Cells with Comments
Để làm nổi bật tất cả các ô với việc sử dụng comments macro này.
Sub highlightCommentCells()
Selection.SpecialCells(xlCellTypeComments).Select
Selection.Style= “Note”
End Sub
Highlight Alternate Rows in the Selection
Với việc làm nổi bật các hàng thay thế, bạn có thể dễ dàng đọc dữ liệu hơn. Và vì điều này, bạn có thể sử dụng mã VBA bên dưới. Mã chỉ đơn giản làm nổi bật mỗi hàng thay thế trong phạm vi được chọn.
Sub highlightAlternateRows()
Dim rng As Range
For Each rng In Selection.Rows
If rng.RowMod 2 = 1 Then
rng.Style= “20% -Accent1”
rng.Value= rng^ (1 / 3)
Else
End If
Next rng
End Sub
Highlight Cells with Misspelled Words
Nếu bạn gặp khó khăn trong việc kiểm tra tất cả các hàng về lỗi chính tả thì đây là một mã dành cho bạn. Mã sẽ kiểm tra mỗi ô được chọn và làm nổi bật ô đó khi có lỗi chính tả.
Sub HighlightMisspelledCells()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If Not Application.CheckSpelling(word:=rng.Text) Then
rng.Style= “Bad” End If
Next rng
End Sub
Highlight Cells With Error in the Entire Worksheet
Mã này sẽ giúp bạn làm nổi bật và đếm tất cả các ô có lỗi.
Chỉ việc chạy mã này và mã sẽ trả lại một thông báo có số ô lỗi và làm nổi bật tất cả các ô đó.
Sub highlightErrors()
Dim rng As Range
Dim i As Integer
For Each rng In ActiveSheet.UsedRange
If WorksheetFunction.IsError(rng) Then
i = i + 1 rng.Style = “bad”
End If
Next rng
MsgBox “There are total ” & i & ” error(s) in this worksheet.”
End Sub
Highlight Cells with a Specific Text in Worksheet
Mã này sẽ giúp bạn đếm các ô có giá trị cụ thể mà bạn sẽ đề cập và sau đó, mã sẽ làm nổi bật tất cả các ô đó.
Sub highlightSpecificValues()
Dim rng As Range
Dim i As Integer
Dim c As Variant
c = InputBox(“Enter Value To Highlight”)
For Each rng In ActiveSheet.UsedRange
If rng = c Then
rng.Style = “Note”
i = i + 1
End If
Next rng
MsgBox “There are total ” & i &” “& c & ” in this worksheet.”
End Sub
Highlight all the Blank Cells Invisible Space
Đôi khi có những ô trống nhưng chúng có một khoảng trống duy nhất và vì vậy, sẽ rất khó để nhận biết chúng. Mã này sẽ giúp bạn kiểm tra tất cả các ô trong worksheet và làm nổi bật các ô có khoảng trống nhất định.
Sub blankWithSpace()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If rng.Value = ” ” Then
rng.Style = “Note”
End If
Next rng
End Sub
Highlight Max Value In The Range
Mã này sẽ kiểm tra tất cả các ô được chọn và làm nổi bật ô đó với giá trị lớn nhất.
Sub highlightMaxValue()
Dim rng As Range
For Each rng In Selection
If rng = WorksheetFunction.Max(Selection) Then
rng.Style = “Good”
End If
Next rng
End Sub
Highlight Min Value In The Range
Mã sẽ kiểm tra tất cả các ô được chọn và làm nổi bật ô đó với giá trị nhỏ nhất.
Sub highlightMinValue()
Dim rng As Range
For Each rng In Selection
If rng = WorksheetFunction.Min(Selection) Then
rng.Style = “Good”
End If
Next rng
End Sub
Highlight Unique Values
Các mã này sẽ làm nổi bật tất cả các ô được chọn mà có giá trị duy nhất.
Sub highlightUniqueValues()
Dim rng As Range
Set rng = Selection
rng.FormatConditions.Delete
Dim uv As UniqueValues
Set uv = rng.FormatConditions.AddUniqueValues
uv.DupeUnique = xlUnique
uv.Interior.Color = vbGreen
End Sub
Highlight Difference in Columns
Sử dụng mã này bạn có thể làm nổi bật sự khác biệt giữa 2 cột (các ô tương ứng).
Sub columnDifference()
Range(“H7:H8,I7:I8”).Select
Selection.ColumnDifferences(ActiveCell).Select
Selection.Style= “Bad”
End Sub
Highlight Difference in Rows
Sử dụng mã này bạn có thể làm nổi bật sự khác nhau giữa 2 hàng (các ô tương ứng).
Sub rowDifference()
Range(“H7:H8,I7:I8”).Select
Selection.RowDifferences(ActiveCell).Select
Selection.Style= “Bad”
End Sub
Những mã macro này sẽ giúp bạn tự động in một số công việc mà có thể tiết kiệm rất nhiều thời gian.
Print Comments
Sử dụng mã macro này kích hoạt cài đặt để in (cell comments) ở cuối trang. Ví dụ bạn phải in 10 trang, sau khi sử dụng mã này bạn sẽ nhận được tất cả comments ở trang cuối cùng thứ 11.
Sub printComments()
With ActiveSheet.PageSetup
.printComments= xlPrintSheetEnd
End With
End Sub
Print Narrow Margin
Sử dụng mã VBA này để in giấy có lề hẹp. Khi bạn chạy mã macro này, mã sẽ tự động thay đổi lề thành hẹp.
Mã này sẽ giúp bạn in phạm vi được chọn. Bạn không cần phải di chuyển đến mục printing options và cài đặt phạm vi in. bạn chỉ việc chọn một phạm vi và chạy mã này.
Sub printSelection()
Selection.PrintOutCopies:=1, Collate:=True
End Sub
Print Custom Pages
Thay vì sử dụng cài đặt từ print options, bạn có thể sử dụng mã này để in phạm vi trang điều chỉnh.
Ví dụ bạn muốn từ trang 5 đến trang10. Bạn chỉ cần chạy mã VBA này và nhập trang bắt đầu và trang kết thúc.
Sub printCustomSelection()
Dim startpageAs Integer
Dim endpageAs Integer
startpage= InputBox(“Please Enter Start Page number.”, “Enter
Những mã macro này sẽ giúp bạn kiểm soát và quản lý worksheets theo một cách đơn giản và tiết kiệm rất nhiều thời gian.
Hide all but the Active Worksheet
Ví dụ bạn muốn ẩn tất cả các worksheets trong workbook của bạn ngoài worksheet đang hoạt động. Mã macro này sẽ giúp bạn làm điều này.
Sub HideWorksheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
ws.Visible = xlSheetHidden
End If
Next ws
End Sub
Unhide all Hidden Worksheets
Mã này dành cho việc nếu bạn muốn hiển thị tất cả các worksheets mà bạn đã ẩn trong mà trước.
Sub UnhideAllWorksheet()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
Delete all but the Active Worksheet
Mã này rất hữu ích cho bạn nếu bạn muốn xóa tất cả các worksheet ngoại trừ sheet đang hoạt động.
Khi bạn chạy mã này, mã sẽ so sánh tên workwheet đang hoạt động với các worksheet khác và sau đó xóa chúng.
Sub DeleteWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.name <> ThisWorkbook.ActiveSheet.name Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws
End Sub
Protect all Worksheets Instantly
Đây là mã dành cho bạn nếu bạn muốn protect các worksheet chỉ trong một lần.
Khi chạy mã macro này, bạn sẽ nhận được một input box để nhập password. Sau khi nhập password, click OK. And make sure to take care about CAPS.
Sub ProtectAllWorskeets()
Dim ws As Worksheet
Dim ps As String
ps = InputBox(“Enter a Password.”, vbOKCancel)
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:=ps
Next ws
End Sub
Resize All Charts in a Worksheet.
Tạo các chart có cùng một kích cỡ. mã macro này sẽ giúp bạn tạo tất cả các chart có chung kích cỡ. Bạn có thể thay đổi chiều cao và chiều rộng của chart bằng cách thay đổi nó trong mã macro.
Sub Resize_Charts()
Dim i As Integer
For i = 1 To ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(i)
.Width = 300
.Height = 200
End With
Next i
End Sub
Insert Multiple Worksheets
Bạn có thể sử dụng mã này nếu bạn muốn thêm nhiều worksheet trong workbook của bạn chỉ trong một bước.
Khi bạn chạy mã macro này, bạn sẽ nhận được input box để nhập tổng số sheet mà bạn muốn nhập.
Sub InsertMultipleSheets()
Dim i As Integer
i = InputBox(“Enter number of sheets to insert.”, “Enter
Multiple Sheets”)
Sheets.Add After:=ActiveSheet, Count:=i
End Sub
Protect worksheet
Nếu bạn muốn protect worksheet, bạn có thể sử dụng mã này.
Bạn chỉ cần nhập password của bạn vào trong mã.
Sub ProtectWS()
ActiveSheet.Protect “mypassword”, True, True
End Sub
Un-Protect Worksheet
Nếu bạn không muốn protect worksheet, bạn có thể sử dụng mà macro này.
Bạn chỉ cần nhập password mà bạn đã sử dụng khi protect worksheet của bạn.
Sub UnprotectWS()
ActiveSheet.Unprotect “mypassword”
End Sub
Sort Worksheets
Mã này sẽ giúp bạn sắp xếp worksheets trong workbook dựa vào tên của worksheet.
Sub SortWorksheets()
Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult
iAnswer = MsgBox(“Sort Sheets in Ascending Order?” & Chr(10) _
Nếu trong worksheet của bạn có dates và bạn muốn chuyển đổi tất cả các dates sang days. Bạn có thể sử dụng mã này.
Đơn giản chỉ cần chọn phạm vi các ô và chạy mã này.
Sub date2day()
Dim tempCell As Range
Selection.Value = Selection.Value
For Each tempCell In Selection
If IsDate(tempCell) = True Then
With tempCell
.Value = Day(tempCell)
.NumberFormat = “0”
End With
End If
Next tempCell
End Sub
Convert Date into Year
Mã này sẽ chuyển đổi ngày sang năm.
Sub date2year()
Dim tempCell As Range
Selection.Value = Selection.Value
For Each tempCell In Selection
If IsDate(tempCell) = True Then
With tempCell
.Value = Year(tempCell)
.NumberFormat = “0”
End With
End If
Next tempCell
End Sub
Remove Time from Date
Bạn có thể sử dụng mã này nếu trong worksheet có hiển thị thời gian cùng với ngày và bạn muốn xóa thời gian đi.
Sub removeTime()
Dim Rng As Range
For Each Rng In Selection
If IsDate(Rng) = True Then
Rng.Value = VBA.Int(Rng.Value)
End If
Next
Selection.NumberFormat = “dd-mmm-yy”
End Sub
Remove Date from Date and Time
Mã sẽ trả lại duy nhất thời gian khỏi giá trị ngày và thời gian.
Sub removeDate()
Dim Rng As Range
For Each Rng In Selection
If IsDate(Rng) = True Then
Rng.Value = Rng.Value – VBA.Fix(Rng.Value)
End If
NextSelection.NumberFormat = “hh:mm:ss am/pm”
End Sub
Convert to Upper Case
Chọn các ô và chạy mã này.
Mã sẽ kiểm tra mỗi một ô của phạm vi được chọn và sau đó chuyển đổi chúng sang văn bản chữ hoa.
Sub convertUpperCase()
Dim Rng As Range
For Each Rng In Selection
If Application.WorksheetFunction.IsText(Rng) Then
Rng.Value = UCase(Rng)
End If
Next
End Sub
Convert to Lower Case
Mã này sẽ giúp bạn chuyển đổi văn bản được chọn sang văn bản chữ thường.
Chỉ cần chọn một phạm vi các ô có văn bản và chạy mã này.
Nếu một ô có 1 số hoặc bất kỳ giá trị nào không phải là văn bản thì giá trị đó sẽ được giữ lại.
Sub convertLowerCase()
Dim Rng As Range
For Each Rng In Selection
If Application.WorksheetFunction.IsText(Rng) Then
Rng.Value= LCase(Rng)
End If
Next
End Sub
Convert to Proper Case
Mã này sẽ chuyền đổi văn bản được chọn sang tên riêng mà có chữ cái đầu được viết hoa và phần còn lại được viết thường.
Sub convertProperCase()
Dim Rng As Range
For Each Rng In Selection
If WorksheetFunction.IsText(Rng) Then
Rng.Value= WorksheetFunction.Proper(Rng.Value)
End If
Next
End Sub
Convert to Sentence Case
Trong trường hợp văn bản, từ đầu tiên có chữ cái đầu viết hoa và phần còn lại viết thường trong mỗi câu thì mã này sẽ giúp bạn chuyển đổi văn bản thường thành câu có chữ cái đầu được viết hoa.
Bạn có thể sử dụng mã này để xóa một ký tự cụ thể từ ô được chọn.
Mã sẽ hiển thị một input box để nhập ký tự mà bạn muốn xóa.
Sub removeChar()
Dim Rng As Range
Dim rc As String
rc = InputBox(“Character(s) to Replace”, “Enter Value”)
For Each Rng In Selection
Selection.Replace What:=rc, Replacement:=””
Next
End Sub
Word Count from Entire Worksheet
Mã có thể giúp bạn đếm tất cả các từ trong một worksheet.
Sub Word_Count_Worksheet()
Dim WordCnt As Long
Dim rng As Range
Dim S As String
Dim N As Long
For Each rng In ActiveSheet.UsedRange.Cells
S = Application.WorksheetFunction.Trim(rng.Text)
N = 0
If S <> vbNullString Then
N = Len(S) – Len(Replace(S, ” “, “”)) + 1
End If
WordCnt = WordCnt + N
Next rng
MsgBox “There are total ” & Format(WordCnt, “#,##0″) & ” words
in the active worksheet”
End Sub
Remove the Apostrophe from a Number
Nếu bạn có dữ liệu bằng số mà có dấu móc lửng trước mỗi số, bạn có thể chạy mã này để xóa chúng.
Sub removeApostrophes()
Selection.Value = Selection.Value
End Sub
Remove Decimals from Numbers
Mã này chỉ đơn giản giúp bạn xóa tất cả các phân số thập phân khỏi các số từ phạm vi được chọn.
Sub removeDecimals()
Dim lnumber As Double
Dim lResult As Long
Dim rng As Range
For Each rng In Selection
rng.Value= Int(rng)
rng.NumberFormat= “0”
Next rng
End Sub
Multiply all the Values by a Number
Ví dụ bạn có một danh sách các số và bạn muốn nhân tất cả các số với một số cụ thể.
Hãy sử dụng mã này.
Chọn một phạm vi các ô và chạy mã này. Đầu tiên mã sẽ yêu cầu bạn nhập số mà bạn muốn nhân và sau đó ngay lập tức nhân tất cả các số trong ô với số đó.
Sub multiplyWithNumber()
Dim rng As Range
Dim c As Integer c = InputBox(“Enter number to multiple”,
“Input Required”)
For Each rng In Selection
If WorksheetFunction.IsNumber(rng) Then
rng.Value = rng * c
Else
End If
Next rng
End Sub
Add a Number in all the Numbers
Giống như việc nhân lên, bạn cũng có thể thêm một số vào một bộ số.
Sub addNumber()
Dim rngAs Range
DimiAs Integer
i= InputBox(“Enter number to multiple”, “Input Required”)
For Each rng In Selection
If WorksheetFunction.IsNumber(rng) Then
rng.Value= rng+ i
Else
End If
Next rng
End Sub
Calculate the Square Root
Bạn có thể sử dụng mã này để tính số căn bình phương mà không cần áp dụng công thức.
Mã sẽ kiểm tra tất cả các ô được chọn và chuyển đổi các số thành căn bình phương của chúng.
Sub getSquareRoot()
Dim rngAs Range
Dim i As Integer
For Each rng In Selection
If WorksheetFunction.IsNumber(rng) Then
rng.Value= Sqr(rng)
Else
End If
Next rng
End Sub
Calculate the Cube Root
Bạn có thể sử dụng mã này để tính căn bậc ba mà không phải áp dụng công thức.
Mã sẽ kiểm tra tất cả các ô được chọn và chuyển đổi các số thành căn bậc ba của chúng.
Sub getCubeRoot()
Dim rng As Range
Dimi As Integer
For Each rng In Selection
If WorksheetFunction.IsNumber(rng) Then
rng.Value = rng ^ (1 / 3)
Else
End If
Nextrng
End Sub
Add A-Z Alphabets in a Range
Cũng giống như các dãy số, bạn cũng có thể chèn các chữ cái vào worksheet.
Sub addcAlphabets()
Dim i As Integer
For i= 65 To 90
ActiveCell.Value= Chr(i)
ActiveCell.Offset(1, 0).Select
Next i
End Sub
Sub addsAlphabets()
Dim i As Integer
For i= 97 To 122
ActiveCell.Value= Chr(i)
ActiveCell.Offset(1, 0).Select
Next i
End Sub
Convert Roman Numbers into Arabic Numbers
Đôi khi, rất khó để nhận biết số La Mã là số seri. Mã này sẽ giúp bạn chuyển đổi số La Mã sang số Arabic.
Sub convertToNumbers()
Dim rng As Range
Selection.Value= Selection.Value
For Each rng In Selection
If Not WorksheetFunction.IsNonText(rng) Then
rng.Value= WorksheetFunction.Arabic(rng)
End If
Next rng
End Sub
Remove Negative Signs
Mã này sẽ kiểm tra các ô được chọn và chuyển đổi các số âm sang số dương. Bạn chỉ cần chọn một phạm vi và chạy mã này.
Sub removeNegativeSign()
Dim rngAs Range
Selection.Value= Selection.Value
For Each rngIn Selection
If WorksheetFunction.IsNumber(rng)
Then rng.Value= Abs(rng)
End If
Next rng
End Sub
Replace Blank Cells with Zeros
Đối với dữ liệu có ô khoảng trắng, bạn có thể sử dụng mã dưới đây để thêm số vào những ô trắng này. Bạn sẽ sử dụng những ô này cho các tính soán sau một cách dễ dàng với mã này.
Hôm nay LeQuocThai.Com xin gửi đến các bạn code VBA Excel dùng để loại bỏ tất cả các ký tự trống bao gồm nhưng không giới hạn ở khoảng trống nằm giữa những chữ, khoảng trống nằm đầu hay cuối văn bản, khoảng trống mà khi in ra giấy không nhìn thấy được.
Đoạn code bên dưới dùng hàm Trim và Clean để làm sạch và loại bỏ khoảng trống hoặc các ký tự không mong muốn trong một Row. Hàm Trim đặt biệt hữu dụng khi dùng để Tách họ tên trong một cột của Excel
Sub TrimData()
Dim rng As Range
Dim cell As Range
Set rng = Sheet1.Range("A1:A10") 'Pham vi data can lam sach
For Each cell In rng
cell.Value = Evaluate("IF(ROW(" & cell.Address & "),CLEAN(TRIM(" & cell.Address & ")))")
Next cell
End Sub
Hàm Trim trong Excel VBA:
Hàm Trim trong Excel VBA được sử dụng để loại bỏ các khoảng trống thừa khỏi bất kỳ ô hoặc văn bản nào và tiêu chuẩn về khoảng cách bắt buộc. Hàm Trim VBA Excel hoạt động chính xác như hàm Trim trong Excel và hàm Trim cũng loại bỏ các khoảng trắng thừa theo 3 cách:
Dấu cách từ đầu văn bản.
Dấu cách từ cuối văn bản.
Khoảng trắng từ giữa văn bản nếu có chứa nhiều hơn 1 khoảng trắng.
Điều này chủ yếu xảy ra khi chúng ta tải dữ liệu từ mạng hoặc trong khi chèn các khoảng trống thừa theo cách thủ công. Mặc dù chúng ta có thể dễ dàng nhìn thấy khoảng trắng ở giữa văn bản, nhưng không thể dễ dàng nhìn thấy khoảng trắng ở đầu và cuối văn bản cho đến khi chúng ta theo tác chỉnh sửa ô cụ thể đó.
Các ví dụ bên dưới sẽ làm gõ cách thức hoạt động của hàm Trim VBA Excel:
Ở đây chúng ta có 3 ô trong ảnh chụp màn hình bên dưới:
Và mỗi ô có một số khoảng trắng được liên kết với chúng. Ô A1 có khoảng trắng ở cuối.
Ô A2 có khoảng trắng ở đầu văn bản.
Và ô A3 có khoảng trống ở giữa văn bản được đánh dấu trong ảnh chụp màn hình bên dưới.