30.3 C
Ho Chi Minh City
Friday, July 18, 2025
AIPHOGPT.COM
Trang chủ Blog Trang 190

Excel VBA: Xóa dòng/xóa dòng trống

Dưới đây là 6 phương pháp sẽ xóa các dòng theo tiêu chí được chọn. Nếu bạn biết phạm vi cần xoá, bạn có thể thay thế “Selection” bằng Range(). Cần lưu ý là các cách dưới đây ít hiệu quả nhất do liên quan đến sử dụng vòng lặp (loops). Bởi vì nó chỉ xóa một dòngng tại một thời điểm!
Trong một số ví dụ, tôi tắt tính năng Calculation và Screenupdating.
Lý do tắt Calculation là trong trường hợp phạm vi các dòng bị xoá có chứa rất nhiều công thức, nếu bật Calculation Excel có thể cần phải tính toán lại mỗi khi một dòng bị xóa sẽ làm chậm quá trình thực thi code vba. Screenupdating = False cũng sẽ tăng tốc độ code vba, vì Excel sẽ không làm mới lại màn hình mỗi khi nó xoá một dòng. Subs: DeleteBlankRows1, DeleteBlankRows3 và cả hai sự kiện Worksheet_Change hơi khác nhau khi nó kiểm tra xem nếu toàn bộ dòng là trống.

Sub DeleteBlankRows1()

'Deletes the entire row within the selection if the ENTIRE row contains no data.
'We use Long in case they have over 32,767 rows selected.
Dim i As Long 
	'We turn off calculation and screenupdating to speed up the macro.
	With Application
		.Calculation = xlCalculationManual
		.ScreenUpdating = False
	'We work backwards because we are deleting rows.
	For i = Selection.Rows.Count To 1 Step -1
		If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
			Selection.Rows(i).EntireRow.Delete
		End If
	Next i
		.Calculation = xlCalculationAutomatic
		.ScreenUpdating = True
 	End With
End Sub

Sub DeleteBlankRows2()

'Deletes the entire row within the selection if _
 'some of the cells WITHIN THE SELECTION contain no data.
On Error Resume Next
Selection.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete
On Error GoTo 0
End Sub

Sub DeleteBlankRows3()

'Deletes the entire row within the selection if _
'the ENTIRE row contains no data.
Dim Rw As Range
If WorksheetFunction.CountA(Selection) = 0 Then
   MsgBox "No data found", vbOKOnly, "LeQuocThai.Com"
   Exit Sub
End If
    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    Selection.SpecialCells(xlCellTypeBlanks).Select
        For Each Rw In Selection.Rows
            If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then
                Selection.EntireRow.Delete
            End If
        Next Rw
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
End Sub

Sub MoveBlankRowsToBottom()

'Assumes the list has a heading
	With Selection

		.Sort Key1:=.Cells(2, 1), Order1:=xlAscending, _

			Header:=xlYes, OrderCustom:=1, MatchCase:=False, _

			Orientation:=xlTopToBottom

	End With 

End Sub

Sub DeleteRowsBasedOnCriteria()

'Assumes the list has a heading.

   	With ActiveSheet

             If .AutoFilterMode = False Then .Cells(1, 1).AutoFilter

                    .Range("A1").AutoFilter Field:=1, Criteria1:="Delete"

                    .Range("A1").CurrentRegion.Offset(1, 0).SpecialCells _

			(xlCellTypeVisible).EntireRow.Delete

     		.AutoFilterMode = False

	End With

End Sub

Sub DeleteRowsWithSpecifiedData()

'Looks in Column D and requires Column IV to be clean

	Columns(4).EntireColumn.Insert

	With Range("D1:D" & ActiveSheet.UsedRange.Rows.Count)

 			.FormulaR1C1 = "=IF(RC[1]="""","""",IF(RC[1]=""Not Needed"",NA()))"

			.Value = .Value

			On Error Resume Next

			.SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete

	End With

	On Error GoTo 0

	Columns(4).EntireColumn.Delete

End Sub

Để sử dụng bất kỳ hoặc tất cả các mã trên:

Mở Excel.
Nhấn Alt + F11 để mở VBE (Visual Basic Editor).
Chọn menu Insert>Module.
Sao chép mã và dán nó vào Module mới.
Nhấn Alt+Q để trở về dạng xem thường của Excel.
Nhấn Alt+F8 rồi chọn tên macro rồi bấm Run. Hoặc chọn Options và gán phím tắt.


VBA code Loại bỏ dòng trống tự động

Các đoạn code ở trên sẽ làm việc tốt để loại bỏ các dòng trống từ một danh sách vùng chọn sẵn có.
Hai ví dụ dưới đây sẽ loại bỏ các dòng trống khi thoả điều kiện. Cả hai đoạn code nên được đặt trong module worksheet và sẽ thực thi mỗi khi một ô thay đổi trên bảng tính.
Trong cả hai đoạn code, chúng ta thiết lập Application.EnableEvents = False là cần thiết trong sự kiện như thế này, nếu không sự kiện sẽ được kích hoạt một lần nữa một khi mã thực hiện mà lần lượt sẽ kích hoạt lại sự kiện giống như kiểu vòng lặp…

Bạn sẽ không nghi ngờ khi nhận thấy GoTo SelectionCode được dùng nếu số lượng các ô trong vùng lựa chọn vượt quá một. Lý do là sẽ có lỗi xảy ra nếu mã đạt đến Target mục tiêu như Target mà Target này đề cập đến một ô duy nhất.
Ví dụ thứ hai sử dụng phương pháp Sort chứ không phải là EntireRow.Delete và là phương pháp khuyến nghị sử dụng nếu có thể. Điều này sẽ xảy ra khi bất kỳ dòng trống được đặt ở dưới cùng của vùng và chúng sẽ bị xoá.
Việc sử dụng từ khóa Me là một thói quen tốt để tiện khi làm việc trong Worksheet and Workbook module.


Private Sub Worksheet_Change(ByVal Target As Range)

'Deletes blank rows as they occur.

	'Prevent endless loops

	Application.EnableEvents = False

	'They have more than one cell selected

	If Target.Cells.Count > 1 Then GoTo SelectionCode

		If WorksheetFunction.CountA(Target.EntireRow) = 0 Then

			Target.EntireRow.Delete

		End If

	Application.EnableEvents = True

	'Our code will only enter here if the selection is more than one cell.

	Exit Sub

SelectionCode:

	If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then

		Selection.EntireRow.Delete

	End If

	Application.EnableEvents = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

'Sorts blank rows to the bottom as they occur

	'Prevents endless loops

	Application.EnableEvents = False

	'They have more than one cell selected

		If Target.Cells.Count > 1 Then GoTo SelectionCode

			If WorksheetFunction.CountA(Target.EntireRow) <> 0 Then

				Me.UsedRange.Sort Key1:=[A2], Order1:=xlAscending, _

					Header:=xlYes, OrderCustom:=1, MatchCase:=False, _

					Orientation:=xlTopToBottom

		End If

	Application.EnableEvents = True

Exit Sub 'Our code will only enter here if the selection is _
'more than one cell.

SelectionCode:

	If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then

		Me.UsedRange.Sort Key1:=[A2], Order1:=xlAscending, _

			Header:=xlYes, OrderCustom:=1, MatchCase:=False, _

			Orientation:=xlTopToBottom

	End If

	Application.EnableEvents = True

End Sub

Để sử dụng một trong các mã trên:


Mở Excel.
Nhấn Alt + F11 để mở VBE (Visual Basic Editor).
Chọn menu Insert>Module.
Sao chép mã và dán nó vào Module mới.
Nhấn Alt+Q để trở về dạng xem thường của Excel.
Nhấn Alt+F8 rồi chọn tên macro rồi bấm Run. Hoặc chọn Options và gán phím tắt.
Trong số tất cả các ví dụ trên sử dụng Excel AutoFilters và Sort là các phương pháp nhanh nhất mà tôi
biết. Nếu bạn biết cách nhanh hơn, xin vui lòng để lại bình luận bên dưới để tôi có thể học hỏi thêm.

Excel VBA: Xóa dòng Excel dựa trên điều kiện đã xác định

Xóa dòng dựa trên điều kiện

Có nhiều bạn email hỏi mình là: “làm thế nào tôi có thể xóa các dòng khỏi bảng tính Excel của mình dựa trên một tiêu chí hoặc điều kiện được chỉ định?” Dưới đây tôi liệt kê gồm 2 cách nhanh nhất có thể được thực hiện bằng code VBA, ngoài ra việc sử dụng AutoFilter là nhanh nhất và dễ áp dụng nhất cho đến nay. Tuy nhiên nếu bạn muốn pro hơn và học hỏi thêm một tí thì vài code VBA cũng là một ý không tệ chút nào. Cả hai ví dụ đều dựa trên dữ liệu của bạn nằm trong phạm vi liên quan với tiêu chí/điều kiện cần tìm trong cột tương đối của bảng tính do bạn chỉ định. Dòng đầu tiên của bảng tính phải là tiêu đề. Trước khi chạy một trong hai mã VBA, bạn nên chọn bất kỳ ô nào trong bảng của mình.

Option Explicit

Sub DelRows1()

Dim rRange As Range
Dim strCriteria As String
Dim lCol As Long
Dim rHeaderCol As Range
Dim xlCalc As XlCalculation
Const strTitle As String = "LeQuocThai.Com - Dieu kien xoa hang"

    On Error Resume Next
Step1:
    'We use Application.InputBox type 8 so user can select range
    Set rRange = Application.InputBox(Prompt:="Chon vung dieu kien bao gom Tieu de" _
        , Title:=strTitle & " STEP 1 of 3", Default:=ActiveCell.CurrentRegion.Address, Type:=8)
        
    'Cancelled or non valid rage
    If rRange Is Nothing Then Exit Sub
     'Awlays use GoTo when selecting range so doesn't matter which Worksheet
     Application.Goto rRange.Rows(1), True
    
Step2
    'We use Application.InputBox type 1 so return a number
    lCol = Application.InputBox(Prompt:="Vui long dien so Dong va Cot" _
        , Title:=strTitle & " STEP 2 of 3", Default:=1, Type:=1)
        
    'Cancelled
    If lCol = 0 Then Exit Sub

Step3:
    'We use default InputBox type as we want Text
    strCriteria = InputBox(Prompt:="Vui long dien 1 dieu kien." & _
        vbNewLine & "Eg >5 OR <10 OR Cat* OR *Cat OR *Cat*" _
        , Title:=strTitle & " STEP 3 of 3")
        
    If strCriteria = vbNullString Then Exit Sub
    
    'Store current Calculation then switch to manual.
    'Turn off events and screen updating
    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
        
    
    'Remove any filters
    ActiveSheet.AutoFilterMode = False
    
    With rRange 'Filter, offset(to exclude headers) and delete visible rows
      .AutoFilter Field:=lCol, Criteria1:=strCriteria
      .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With

    'Remove any filters
    ActiveSheet.AutoFilterMode = False
    
      'Revert back
    With Application
        .Calculation = xlCalc
        .EnableEvents = True
        .ScreenUpdating = True
    End With
   On Error GoTo 0
End Sub


Sub DelRows2()

Dim rTable As Range
Dim rCol As Range, rCell As Range
Dim lCol As Long
Dim xlCalc As XlCalculation
Dim vCriteria

On Error Resume Next
   'Determine the table range
     With Selection
         If .Cells.Count > 1 Then
             Set rTable = Selection
         Else
             Set rTable = .CurrentRegion
             On Error GoTo 0
         End If
    End With
   
    'Determine if table range is valid

    If rTable Is Nothing Or rTable.Cells.Count = 1 Or WorksheetFunction.CountA(rTable) < 2 Then
        MsgBox "Khong the xac dinh vung du lieu.", vbCritical, "LeQuocThai.Com"
        Exit Sub
    End If

    'Get the criteria in the form of text or number.

    vCriteria = Application.InputBox(Prompt:="Nhap dieu kien de xoa Dong. " _
    & "Neu dieu kien nam o mot O, clik chon o dieu kien do", _
    Title:="LeQuocThai.Com - Dieu kien xoa Dong", Type:=1 + 2)

    'Go no further if they Cancel.

    If vCriteria = "False" Then Exit Sub

    'Get the relative column number where the criteria should be found

    lCol = Application.InputBox(Prompt:="Chon so luong Cot co lien quan " _
    & "co chua dieu kien xoa.", Title:="LeQuocThai.Com - Dieu kien xoa Dong va Cot", Type:=1)

    'Cancelled
    If lCol = 0 Then Exit Sub
        'Set rCol to the column where criteria should be found
        Set rCol = rTable.Columns(lCol)
        'Set rCell to the first data cell in rCol
        Set rCell = rCol.Cells(2, 1)

    'Store current Calculation then switch to manual.
    'Turn off events and screen updating
    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
   
  'Loop and delete as many times as vCriteria exists in rCol
   For lCol = 1 To WorksheetFunction.CountIf(rCol, vCriteria)
        Set rCell = rCol.Find(What:=vCriteria, After:=rCell, LookIn:=xlValues, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False).Offset(-1, 0)
            rCell.Offset(1, 0).EntireRow.Delete
   Next lCol
   `
    With Application
        .Calculation = xlCalc
        .EnableEvents = True
        .ScreenUpdating = True
    End With
   On Error GoTo 0
   
   End Sub

Bảo mật Worksheets, Workbooks và mã VBA

Excel cung cấp các phương pháp mà bạn có thể ngăn người dùng sửa đổi cửa sổ làm việc (workbooks), trang tính (worksheets) và mã VBA (VBA code). Khi bạn bảo vệ cửa sổ làm việc, bạn ngăn người dùng thêm hoặc xóa trang tính và ngăn người dùng di chuyển trang tính trong cửa sổ làm việc. Khi bạn bảo vệ trang tính, bạn đang ngăn người dùng thay đổi giá trị trong ô và thực hiện các thay đổi khác đối với trang tính. Trong khi bảo vệ cửa sổ làm việc áp dụng cho toàn bộ cửa sổ làm việc, bảo vệ trang tính hoạt động ở cấp trang tính và do đó các trang tính khác nhau có thể có các mức bảo vệ khác nhau. Cả bảo vệ cửa sổ làm việc và trang tính đều có thể được gán mật khẩu.

Bảo vệ cửa sổ làm việc (Workbook Protection)

Các mục Protect WorkbookProtect Worksheet nằm trong bảng Changes của tab Review của Ribbon. Khi bạn bảo vệ một sổ làm việc, bạn sẽ có hai tùy chọn bảo vệ. Kiểm tra tùy chọn Structure ngăn người dùng di chuyển, thêm hoặc xóa trang tính trong sổ làm việc. Tùy chọn Windows ngăn người dùng tạo các cửa sổ bổ sung cho sổ làm việc. Theo mặc định, Structure được bật và Windows bị tắt. Bạn có thể gán mật khẩu cho cài đặt bảo vệ sổ làm việc.

Review tab trong Excel
Review tab trong Excel

Bảo vệ trang tính (Worksheet Protection)

Bảo vệ trang tính nâng cao hơn một chút. Theo mặc định, tất cả các ô đều bị khóa, nhưng điều này không có hiệu lực cho đến khi bạn bảo vệ trang tính. Khi bạn bảo vệ trang tính, tất cả các ô đều bị khóa ngoại trừ những ô mà bạn đã mở khóa cụ thể. Khi bạn bảo vệ trang tính, bạn sẽ nhận được hộp thoại liệt kê một số thao tác mà bạn muốn cho phép người dùng thực hiện (chẳng hạn như định dạng ô) ngay cả khi trang tính được bảo vệ. Bạn có thể cung cấp mật khẩu để bảo vệ trang tính.

Nếu bạn chỉ muốn khóa một vài ô và mở khóa phần còn lại của trang tính, hãy chọn tất cả các ô bằng cách nhấp vào nút Select All  (hình vuông màu xám phía trên số hàng và ở bên trái các chữ cái của cột), sau đó chuyển đến tab Home của Ribbon và chọn mục Format trong bảng Cells ở phía bên phải của Ribbon. Tại đây, bạn hãy bỏ chọn mục Lock Cell. Điều này sẽ mở khóa tất cả các ô. Bây giờ, quay lại và khóa những ô bạn muốn khóa. Khi bạn bảo vệ trang tính, những ô đó sẽ được mở khóa và người dùng có thể thay đổi trang tính. Nếu bạn muốn khóa tất cả trừ một vài ô, hãy chọn những ô đó rồi bỏ chọn mục Lock Cell trong mục Cells trên tab Home của Ribbon. Vậy là bạn đã khóa trang tính.

Tùy chọn UserInterfaceOnly

Khi bạn khóa các ô trên một trang tính, bảo vệ đó sẽ áp dụng cho các hoạt động VBA cũng như các hành động của người dùng. Nếu mã VBA của bạn cố gắng sửa đổi một ô bị khóa, bạn sẽ gặp lỗi runtime error 1004. Một cách để khắc phục điều này là bỏ bảo vệ trang tính trước khi VBA liên quan chạy và sau đó bảo vệ lại nó sau khi VBA kết thúc. Đây là một giải pháp khá lằng nhằng. Cách tốt hơn là sử dụng gắn cờ UserInterfaceOnly khi bạn bảo vệ trang tính qua VBA. Bạn có thể chỉ định UserInterfaceOnly chỉ trong mã VBA. Không có phần tử giao diện người dùng (thanh lệnh, menu, v.v.) cho tùy chọn này; bạn phải sử dụng VBA. Khi bạn bảo vệ trang tính bằng UserInterfaceOnly, tính năng bảo vệ được áp dụng cho các hành động của người dùng (về cơ bản, hoạt động của bàn phím và chuột), nhưng VBA có thể tự do sửa đổi trang tính như thể không có biện pháp bảo vệ. Cài đặt UserInterfaceOnly không được lưu khi bạn đóng cửa sổ làm việc, vì vậy bạn cần đặt nó khi mở cửa sổ làm việc. Nơi tốt nhất để làm điều này là trong thủ tục sự kiện Workbook_Open. Ví dụ:

Private Sub Workbook_Open ()
Me.Worksheets (“Sheet1”). Protect UserInterfaceOnly: = True
Me.Worksheets (“Sheet2”). Protect UserInterfaceOnly: = True
Me.Worksheets (“Sheet3”). Protect UserInterfaceOnly: = True
End Sub


Mã này phải được đặt trong module ThisWorkbook của VBA Project của cửa sổ làm việc.

Ẩn công thức (Hiding Formulas)

Ngoài việc bảo vệ trang tính, bạn có thể ẩn các công thức trên trang tính. Thông thường, Excel sẽ hiển thị công thức của ô trong thanh công thức khi ô được chọn, ngay cả khi ô được bảo vệ. Để ẩn công thức của ô, hãy bấm vào Format trong bảng Cells của tab Home đầu của ribbon và chọn tùy chọn Format Cells. Trong hộp thoại đó, chọn tab Protection và chọn mục Hidden. Bây giờ, khi bạn bảo vệ trang tính, công thức sẽ không hiển thị trong thanh công thức. Bảo vệ này là yếu. Công thức có thể được truy xuất bằng mã VBA đơn giản.

Bảo mật dự án VBA (VBA Project Security)

Bạn có thể ẩn và khóa mã VBA của mình. Trong trình soạn thảo VBA, hãy chuyển đến menu Tools và chọn VBA Project. Trong hộp thoại đó, nhấp vào tab Protection và tích chọn tùy chọn Lock project for viewing. Khi cửa sổ làm việc được lưu và đóng, bảo vệ sẽ có hiệu lực và người dùng sẽ không thể xem hoặc chỉnh sửa mã VBA.

Cảnh báo bảo mật (Security Caveat)

Phải nói rằng khả năng bảo vệ trong Excel rất yếu, gần như không đáng để sử dụng. Có rất nhiều phần mềm có sẵn trên internet có thể phá vỡ lớp bảo vệ và cung cấp mật khẩu để vượt qua bất kỳ biện pháp bảo vệ bằng mật khẩu nào.

Tôi đã sử dụng VBAKey và ExcelKey để phá mật khẩu, bao gồm cả những mật khẩu trong Excel 2013 chỉ trong vài giây. Những phần mềm này có giá khoảng vài chục đến vài trăm đô la Mỹ, vì vậy chúng nằm trong tầm tay của những người muốn mua công thức và mã của bạn. Khả năng bảo vệ trong năm 2013 tốt hơn so với các phiên bản trước đó, nhưng vẫn còn yếu. Hầu hết các tiện ích phá mật khẩu không nhất thiết phải cung cấp cho bạn cùng một mật khẩu đã được sử dụng để bảo vệ đối tượng, nhưng cung cấp cho bạn một mật khẩu sẽ hoạt động. Bạn nên có các biện pháp bảo vệ cửa sổ làm việc, trang tính và VBA để ngăn người dùng dòm ngó sản phẩm trí tuệ của bạn hoặc sở hữu có giá trị. Nếu ai đó muốn xem và sửa đổi các công thức và mã của bạn, họ có thể làm điều đó với một chút nỗ lực.

Một yếu tố khác liên quan đến tính bảo mật của cửa sổ làm việc và trang tính trong Excel 2007 trở về sau thực sự không phải là một tệp Excel duy nhất mà thực sự là một tập hợp của hàng tá tệp XML. Các tệp này có thể được trích xuất bằng một chương trình zip đơn giản như WinZip, Winrar hoặc Secure Zip, sau đó nội dung của XML có thể đọc và ghi được. Đây là những tệp XML rất phức tạp và yêu cầu trình độ chuyên gia về XML. Đây là một lỗ hổng bảo mật khác trong các phiên bản Excel 2007 về sau.

Để có được bảo mật tốt hơn và bảo vệ tài sản trí tuệ của mình, bạn nên tạo COM Add-in trong VB6 hoặc .NET để thay thế mã VBA và chuyển đổi tất cả các chức năng của bạn thành mã được lưu trữ trong Automation Add-in hóa hoặc thư viện hàm trong VBNET. Trong những trường hợp này, bạn đang cấp cho người dùng mã chỉ có thể đọc bằng máy, trong khi mã nguồn vẫn an toàn với bạn. Một giải pháp thay thế khác là biên dịch tất cả các hàm của bạn trong NET Class và gọi chúng trong XLL do Excel DNA tạo ra. (Excel DNA là một công cụ rất thú vị để tạo XLL bằng cách sử dụng NET Class Libraries và sẽ được nhà phát triển trình độ trung cấp và cao cấp quan tâm).

Các bài viết liên quan:

Phím Tắt Trong Excel 2007, 2010, 2013, 2016, 2019 Thông Dụng nhất Các Bạn Nên Nhớ

Các Phím Tắt Trong Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019 thông dụng nhất các bạn nên nhớ. Nhiều ngân hàng, công ty, doanh nghiệp lớn hiện sử dụng Excel làm công cụ cho hoạt động xử lý số liệu, kế toán, báo cáo thống kê. Microsoft Excel là một công cụ rất hữu ích trong các lĩnh vực đó. Bài viết này tổng hợp lại các phím tắt thông dụng nhất trong hầu hết các phiên bản Microsoft Excel. Mời các bạn cùng tham khảo nhé!

Tổ Các Phím Tắt Trong Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019 như thế nào?

Tổ Các Phím Tắt Trong Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019 dành cho các bạn ngân hàng, kế toán, văn phòng. Khi áp dụng được các phím tắt này công việc của bạn sẽ trở nên nhanh chóng và hiệu quả vô cùng. Cùng tham khảo ngay các phím tắt dưới đây các bạn nào!

1. Tổng hợp phím tắt thông dụng với Dòng, Cột, Ô:

Ctrl + Shift + 0: Hiện các cột bị ẩn trong vùng đang chọn

Shift + F11: Chèn một trang bảng tính mới

Ctrl + Spacebar: Chèn cột

F4: Lặp lại thao tác trước

F2: Đưa con trỏ vào trong ô

F12: Lưu văn bản với tên khác (nó giống với lệnh Save as đó)

Shift + Spacebar: Chèn dòng

Ctrl + 0 (bàn phím số 0): Ẩn các cột hiện tại.

2. Tổng hợp phím tắt cơ bản:

Ctrl + B : Chữ đậm

Ctrl + I : Chữ nghiêng

Ctrl + U : Chữ gạch chân

Ctrl + A : Bôi đen toàn bộ văn bản (Chọn toàn bộ bảng tính trong)

Ctrl + F : Bật hộp thoại tìm kiếm

Ctrl + X : Cắt dữ liệu

Ctrl + C : Copy dữ liệu

Ctrl + V : Dán dữ liệu copy hoặc cắt

Ctrl + H : Tìm kiếm và thay thế cụm từ

Ctrl + N : Mở một file mới

Ctrl + O : Mở file đã lưu

Ctrl + P: Bật hộp thoại in ấn

Ctrl + S : Lưu tài liệu

Ctrl + R : Tự động sao chép ô bên trái sang bên phải

Ctrl + Z : Hủy thao tác vừa thực hiện

Ctrl + W : Đóng tài liệu (giống lệnh Alt + F4)

Ctrl + 1 : Hiển thị hộp thoại Format Cells (*)

Ctrl + Y: Khôi phục lệnh vừa bỏ (ngược lại với Ctrl+Z)

Ctrl + 0 : Ẩn cột (giống lệnh hide)

Ctrl + Shift + F: Hiện danh sách phông chữ

Ctrl + shift + 0: Hiện các cột vừa ẩn (giống lệnh unhide)

Ctrl + shift + 9: Hiện các hàng vừa ẩn (giống lệnh unhide

Ctrl + F4: Đóng bảng tính

Ctrl + Shift + (+): Chèn thêm ô trống

Ctrl + 8 : Chọn vùng dữ liệu liên quan đến ô (cell) hiện tại

Ctrl + (-) : Xóa các ô, khối ô hàng (bôi đen)

Ctrl + Page up (Page down) : Di chuyển giữa các sheet

Ctrl + Shift + P: Hiện danh sách cỡ chữ

Alt + F4: Thoát Excel

Alt + Z: Chuyển chế độ gõ từ tiếng anh (A) sang tiếng việt (V)

Alt + tab : Di chuyển giữa hai hay nhiều file kế tiếp

Alt + các chữ cái có gạch chân: Vào các thực đơn tương ứng

Alt + <- : Hủy thao tác vừa thực hiện (nó giống lệnh Undo)

Ctrl + 9 : Ẩn hàng (giống lệnh hide)

Shift + F2 : Tạo chú thích cho ô

Shift + F11 : Tạo sheet mới

Shift + F10 : Hiển thị thực đơn hiện hành (giống như ta kích phải chuộ)

3. Tổng hợp phím tắt Dịch chuyển:

Ctrl + Shift + End: Chọn từ ô hiện tại đến ô có dữ liệu cuối cùng

Ctrl + End: Về ô có dữ liệu cuối cùng

Ctrl + Home: Về ô đầu Worksheet (A1)

Ctrl + Mũi tên: Di chuyển đến vùng dữ liệu kế tiếp

Ctrl + Shift + Home: Chọn từ ô hiện tại đến ô A1

4. Tổng hợp phím tắt dùng cho Sheet:

Ctrl + F2: Xem trước khi in

Ctrl + Tab, Ctrl + F6: Chuyển đổi qua lại giữa các bảng tính đang mở

Ctrl + Page Down: Chuyển sang sheet kế tiếp

Ctrl + Page Up: Chuyển sang sheet trước

Ctrl + Shift + 0: Hiện các cột bị ẩn trong vùng đang chọn

Hi vọng với các tổ hợp Phím Tắt Trong Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019 nêu trên đây sẽ giúp các bạn thực hiện nhanh chóng hơn trong công việc với mọi phiên bản của Microsoft Excel.

Chúc các bạn thành công nhé!

Các bài viết có liên quan:

14 thủ thuật Excel cực kỳ hữu ích, bắt buộc phải nhớ!

Kỹ năng sử dụng Excel một cách thành thạo và nắm được các thủ thuật Excel sẽ giúp ích rất nhiều cho bạn. Dưới đây là một số thủ thuật Excel cực kỳ hữu ích, giúp bạn ngày càng trở nên chuyên nghiệp hơn.

1. Sử dụng tính năng Flash Fill để tự động điền dữ liệu trong nháy mắt. 

Điểm thông minh của tính năng này là bạn có thể xem trước được kết quả, bạn chỉ cần nhập dữ liệu vào cột theo đúng quy luật. Trong ví dụ này, chúng tôi đã nhập Smith, rồi nhập North. Excel khi đó sẽ đưa ra đề xuất cho các ô còn lại. Nếu dữ liệu được điền vào đã phù hợp với ý của bạn, hãy nhấn Enter và bạn có thể tiếp tục.


2. Tính tổng mà không cần sử dụng công thức

Đây là một mẹo hữu ích cho bảng: Thêm Hàng Tổng mà không cần viết công thức. Chỉ cần bấm vào vị trí bất kỳ bên trong bảng Excel. Sau đó, nhấn Ctrl+Shift+T và Excel sẽ thêm Hàng Tổng vào dưới cùng


3. Biến vùng dữ liệu thành bảng giúp nổi bật dữ liệu hiện có

Bạn muốn biến các ô dữ liệu gốc bình thường thành một bảng Excel chính thức? Bấm vào bất cứ đâu bên trong dữ liệu, rồi nhấn Ctrl+T.

Bảng cung cấp tất cả các chức năng hữu ích, tô màu các dòng và thêm nút Filter. Ngoài ra, bảng cũng trông đẹp hơn.


4. Tìm kiếm chức năng, hãy sử dụng Tell me!

Bạn đã sử dụng một tính năng Excel nhất định trước đây … nhưng bạn không thể nhớ nó ở đâu. Không vấn đề gì, Tell Me có thể giúp!

Chỉ cần nhấp vào hộp có nhãn Hãy cho tôi biết bạn muốn làm gì (Ask me) và bạn đã có thể tìm kiếm một nút, menu, chức năng, bất cứ điều gì bạn muốn. Trong ví dụ này, chúng tôi đã tìm kiếm “Freeze Panes” để tìm nút cho các cột và hàng đóng băng. Bạn sẽ tìm kiếm cái gì?


5. Để xoay hoặc không xoay (PivotTable)

Giả sử, bạn nhận được báo cáo có dữ liệu nhưng bạn không thể tạo PivotTable do dữ liệu đã bị xoay. Các bước sau đây sẽ giúp bạn bỏ chế độ xoay dữ liệu:

  1. Chọn dữ liệu của bạn, bấm Data > From Table/Range > OK để tạo bảng.
  2. Khi Query Editor mở ra, nhấn và giữ phím CTRL để chọn các cột mà bạn muốn bỏ xoay.
  3. Đi đến Transform > Unpivot Columns > Only selected columns.
  4. Đi đến Home > Close & Load để đặt dữ liệu chưa xoay vào một trang tính mới trong Excel.

Giờ bạn có thể tạo PivotTable của riêng mình.


6. Trực quan hóa, gắn liền với Data Bars (Thanh Dữ liệu)

Bạn muốn truyền đạt số một cách trực quan? Thanh Dữ liệu có thể hữu ích.

Chọn vùng dữ liệu, rồi đi đến Home > Conditional Formatting > Data Barsvà chọn bảng phối màu.


7. Slice data (Cắt dữ liệu) theo cách bạn muốn

Slicer là các nút cho phép bạn lọc dữ liệu dễ dàng.

Chọn vùng dữ liệu trong bảng hoặc PivotTable, rồi đi đến Insert > Slicer. Chọn cột bạn muốn lọc dữ liệu. Khi hoàn tất, bạn có các nút thuận tiện để lọc.


8. Lập biểu đồ cho dữ liệu của bạn: thật dễ dàng với ALT+F1

Chọn ô bất kỳ trong phạm vi dữ liệu của bạn, rồi nhấn Alt+F1. Nhìn xem! Giờ bạn đã có một biểu đồ!


9. Sử dụng hàm IFS cho những bài toán phân tích

Khi bạn cần một công thức để thực hiện nhiều tính toán “nếu thế này thì thế kia”, hãy sử dụng hàm IFS. Hàm IFS đánh giá nhiều điều kiện để không yêu cầu công thức lồng. Trong ví dụ này, hàm IFS tìm một ô trong cột Điểm và tùy vào giá trị điểm, sẽ hiển thị điểm bằng chữ.

Hàm IFS sẵn dùng trong phiên bản mới nhất của Excel for Office 365.


10. Chọn các mẫu sẵn có là một lựa chọn thực tế!

Bấm vào File > New và tìm kiếm  với từ khóa “accessible”. Chọn Accessible Template Sampler để xem tất cả các mẫu có thể truy cập có sẵn trong Excel.


11. Đóng băng dòng hoặc cột (Freeze panes)

Bạn muốn hàng trên cùng và cột đầu tiên vẫn cố định trong khi bạn kéo thanh trượt trên bảng tính của mình? Chọn một ô, sau đó bấm View > Freeze Panes > Freeze Panes. Bạn sẽ nhận thấy hai “đường đóng băng” sẽ xuất hiện, giao nhau ở góc trên cùng bên trái của ô. Mọi thứ ở bên trái của dòng đóng băng của cột vẫn được cố định trong khi bạn kéo thanh trượt sang trái/phải; mọi thứ phía trên hàng đóng băng của hàng vẫn ở lại khi bạn kéo thanh trượt cuộn lên hoặc xuống.


12. Tạo Pivottable có khó không?

Nếu bạn vẫn chưa có kiến thức về Pivotable hoặc chưa có kinh nghiệm tạo Pivotable bạn vẫn có thể dễ dàng áp dngj pivotable cho dữ liệu của mình bằng cách sau:

Chuyển đến Insert > Recommended PivotTables được đề xuất, chọn phạm vi dữ liệu của bạn và chọn phạm vi phù hợp nhất.


13. Tìm kiếm dữ liệu với hàm VLOOKUP

VLOOKUP tìm thông tin trong một bảng khác và mang lại thông tin liên quan đến các ô bạn đang làm việc. Và, với đối số TRUE, nó sẽ tìm thấy thông tin có kết quả gần đúng. Trong ví dụ này, nó tìm kiếm 0,92 và tìm thấy kết quả gần nhất: 0,9. Sau đó, nó mang lại giá trị trong cột tiếp theo bên phải 0,9 là chữ A.

14. Trạng thái vùng dữ liệu được chọn là gì, xem ngay trong nháy mắt!

The Status Bar hiển thị mức trung bình, số lượng và tổng - mà không cần gõ các công thức phức tạp! Chỉ cần chọn một số ô trong bảng của bạn và sau đó nhìn vào góc dưới bên phải của cửa sổ Excel. Ở đó bạn sẽ thấy số liệu thống kê tức thì về vùng dữ liệu bạn lựa chọn.

Tạo danh sách sổ xuống trong Excel

Danh sách sổ xuống (drop list) cho phép bạn kiểm soát chính xác những gì người dùng có thể nhập vào một ô.

Tóm tắt các bước tạo danh sách sổ xuống:

Bước 1: Nhập vào các mục bạn muốn xuất hiện trong danh sách sổ xuống

Bước 2: Đặt tên cho vùng dữ liệu được tạo từ bước 1

Bước 3: Sử dụng Datavalidation để tạo danh sách sổ xuống

Bước 4: Thiết lập thông báo nhập dữ liệu và thông báo lỗi hướng dẫn người dùng nhập dữ liệu đúng cách

Hướng dẫn chi tiết các bước tạo danh sách sổ xuống:

1. Trong Sheet mới hãy nhập các mục bạn muốn xuất hiện trong danh sách sổ xuống.

Chú ý: Giữa các giá trị này không nên có bất kỳ ô trống nào và bạn nên sắp xếp các mục theo thứ tự trước khi xuất hiện trong danh sách sổ xuống.

Data Validation trong Excel

2. Chọn vùng dữ liệu bạn muốn đặt tên -> vào thẻ Formulas -> chọn Define Name trong nhóm Defined Names

Data Validation trong Excel

Hộp thoại New Name xuất hiện -> gõ tên vùng vào ô Name (không dùng dấu cách hay dấu gạch ngang khi đặt tên vùng).

Chú ý: Cách nhanh nhất để đặt tên vùng dữ liệu là chọn vùng -> gõ tên trực tiếp vào Name Box -> nhấn Enter

Data Validation trong Excel

3. Chọn ô hoặc dãy ô trong bảng tính nơi bạn muốn đặt danh sách sổ xuống -> vào thẻ Data -> chọn Data Validation trong nhóm Data Tools

Data Validation trong Excel

4. Hộp thoại Data Validation xuất hiện:

  • Trong tab Settings mục Allow -> chọn List (tích chọn ô In-cell dropdown và nếu người dùng được phép để ô trống thì bạn tích chọn ô Ignore blanks )
  • Trong mục Source nhập =(tên vùng dữ liệu)
Data Validation trong Excel
  • Nhấp chọn OK các bạn sẽ thu được danh sách sổ xuống như hình minh họa:
Data Validation trong Excel

5. Muốn hiển thị thông báo khi người dùng bấm chọn ô các bạn thực hiện thao tác sau:

  • Trong hộp thoại Data Validation -> chọn tab Input Message:
  • Tích chọn mục Show input message when cell is selected
  • Lần lượt nhập tiêu đề và thông báo vào các mục Title, Input message (tối đa 225 ký tự)
  • Nếu bạn không muốn hiển thị thông báo thì không tích chọn mục Show input message when cell is selected
Data Validation trong Excel
  • Nhấp chọn OK sau khi hoàn tất các lựa chọn và kết quả thu được như hình minh họa:
Data Validation trong Excel

6. Muốn hiển thị thông báo khi ai đó nhập dữ liệu không nằm trong danh sách, các bạn thực hiện thao tác sau:

  • Trong hộp thoại Data Validation -> chọn tab Error Alert
  • Tích chọn mục Show error alert after invalid data is entered
  • Trong mục Style: lựa chọn kiểu hiển thị hộp thông báo dưới dạng Stop
  • Trong mục Title: nhập tiêu đề thông báo
  • Trong mục Error message: nhập nội dung thông báo
  • Nếu bạn không muốn hiển thị thông báo thì bỏ chọn tại hộp kiểm Show error alert after invalid data is entered
Data Validation trong Excel
  • Nhấp chọn OK sau khi hoàn tất các lựa chọn và kết quả thu được như hình minh họa:
Data Validation trong Excel