4. Các ví dụ về Hàm tự định nghĩa

Tổng hợp: phamnhukhang, ttphong2007 (GPE)

Mục lục ví dụ:

1. Hàm trả về tên sheet hiện hành

2. Hàm trả về tên workbook hiện hành

3. Hàm trả về đường dẫn đến workbook hiện hành

4. Hàm trả về tên đầy đủ của workbook

5. Hàm trả về User hiện tại của Windows hoặc Excel

6. Hàm trả về công thức trong một ô (cell) xác định

7. Hàm kiểm tra xem một ô có chứa công thức hay không

8. Hàm kiểm tra xem một ô (cell) trong bảng tính có đang áp dụng tính năng Data Validation hay không

9. Hàm kiểm tra xem một ô (cell) có chứa chú thích (comment) hay không

10. Hàm tính tổng các ô tô nền theo màu xác định

11. Hàm tính tổng các ô chứa Font chữ theo màu xác định

12. Hàm xoá bỏ các số 0 đứng trước giá trị số khỏi một ô xác định

13. Hàm xoá bỏ các ký tự chữ khỏi một ô xác định

14. Hàm xoá bỏ tất cả ký tự số khỏi một ô xác định

15. Hàm xác định vị trí của ký tự số đầu tiên trong chuỗi cho trước trong ô

16. Hàm tính tổng tất cả chữ số của con số cho trước trong ô (cell)

17. Hàm tính tổng tất cả chữ số của các con số trong vùng (range)
18. Hàm kiểm tra một worksheet có rỗng hay không

19. Hàm kiểm tra một worksheet có đang được bảo vệ (protected) hay không

20. Hạm tạo AutoText của riêng bạn


1. Hàm trả về tên sheet hiện hành

1. Nhấn <Alt+F11> để mở cửa sồ VBE (Visual Basic Editor)
2. Vào Insert, chọn Module.
3. Nhập vào đoạn mã sau:

Function TabName() 
   TabName = ActiveSheet.Name 
End Function 

4. Đóng cửa sổ VBA Editor bằng phím tắt <Alt+Q>, và tại ô A1 nhập vào hàm sau: =TabName().
5. Nhấn <Enter> và xem kết quả

Top

 

2. Hàm trả về tên workbook hiện hành

Excel có sẵn hàm =CELL("Filename") trả về tên workbook kèm theo đường dẫn. Cách dễ hơn để lấy tên workbook là viết hàm tự tạo.

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function WkbName() 
   WkbName = ActiveWorkbook.Name 
End Function 

4. Đóng cửa sổ VBE bằng <Alt+Q>, tại ô A3 nhập vào hàm: =WkbName().
5. Nhấn <Enter> và xem kết quả.

Top



3. Hàm trả về đường dẫn đến workbook hiện hành

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function WkbPath() 
   WkbPath = ActiveWorkbook.Path 
End Function 

4. Đóng cửa sổ VBE và tại ô A4 nhập vào hàm sau: =WkbPath().
5. Nhấn <Enter> và xem kết quả.

Top



4. Hàm trả về tên đầy đủ của workbook

Chúng ta đã viết hàm trả về tên workbook và đường dẫn đến workbook. Để lấy tên workbook đầy đủ (đường dẫn và tên) thì chúng ta dùng hàm sau.

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function WkbFull() 
   WkbFull = ActiveWorkbook.FullName 
End Function 

4. Đóng cửa sổ VBE và tại ô A5 nhập vào công thức: =WkbFull().
5. Nhấn <Enter> và xem kết quả.

Top

 

5. Hàm trả về User hiện tại của Windows hoặc Excel

Để lấy tên User Windows hiện hành:

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function User() 
   User = Environ("Username") 
End Function 

4. Đóng cửa sổ VBE và chọn ô A6 nhập vào hàm sau: =User().
5. Nhấn <Enter> và xem kết quả.

Để lấy tên User Excel hiện hành:

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function ExcelUser()
   ExcelUser = Application.UserName
End Function

4. Đóng cửa sổ VBE và chọn ô A7 nhập vào hàm sau: =ExcelUser().
5. Nhấn <Enter> và xem kết quả.

Top

 

6. Hàm trả về công thức trong một ô (cell) xác định

Ứng dụng rất tốt cho trường hợp chúng ta muốn hiển thị công thức dạng Text bên cạnh ô tính toán

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function FormT(rng As Range) 
   FormT = " " & rng.Formula 
End Function 

4. Đóng cửa sổ VBE và tại ô B5 nhập vào hàm: =FormT(A5) để xem công thức dùng trong ô A5
5. Nhấn <Enter> và xem kết quả.

Top



7. Hàm kiểm tra xem một ô có chứa công thức hay không

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function FormYes(rng As Range) 
   FormYes = rng.HasFormula 
End Function 

4. Đóng cửa sổ VBE và tại ô B1 nhập vào hàm: =FormYes(A1).
5. Chép xuống đến ô B5 và xem kết quả, nếu ô chứa công thức thì kết quả trả về True ngược lại thì trả về False.

Top



8. Hàm kiểm tra xem một ô (cell) trong bảng tính có đang áp dụng tính năng Data Validation hay không

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function Valid(rng As Range) 
   Dim intV As Integer 
   On Error GoTo errorM 
   intV = rng.Validation.Type 
   Valid = True 
   Exit Function 
errorM: 
   Valid = False 
End Function 

4. Đóng cửa sổ VBE và tại ô C1 nhập vào hàm: =Valid(A1) để kiểm tra ô A1
5. Nhấn <Enter> và xem kết quả.

Top



9. Hàm kiểm tra xem một ô (cell) có chứa chú thích (comment) hay không

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function ComT(rng As Range) 
   On Error GoTo errorM 
   If Len(rng.Comment.Text) > 0 Then ComT = True 
   Exit Function 
errorM: 
   ComT = False 
End Function 

4. Đóng cửa sổ VBE, chọn vùng C1:C5 và nhập vào hàm: =ComT(A1).
5. Nhấn <Ctrl+Enter> và xem kết quả.

Top



10. Hàm tính tổng các ô tô nền theo màu xác định

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function SumColor(Area As Range, Ci As Integer) 
   Dim sng As Single, rng As Range 
   For Each rng In Area 
      If rng.Interior.ColorIndex = Ci Then sng = 
      sng+rng.Value 
   Next rng 
   SumColor = sng 
End Function 

4. đóng cửa sổ VBE và tại ô C6 nhập vào hàm: =SumColor(A1:A5,3).
5. Nhấn <Enter> và xem kết quả.


Ghi chú: Màu nền (1=black, 2=white, 3=red, 4=green,5=blue, ...).

Top



11. Hàm tính tổng các ô chứa Font chữ theo màu xác định

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function SumColorF(Area As Range, Ci As Integer) 
   Dim sng As Single, rng As Range 
   For Each rng In Area 
      If rng.Font.ColorIndex = Ci Then sng = 
      sng+rng.Value 
   Next rng 
   SumColorF = sng 
End Function 

4. Đóng cửa sổ VBE, tại ô A6 nhập vào hàm: =SumColorF(A1:A5,5).
5. Nhấn <Enter> và xem kết quả.


Ghi chú: Màu nền (1=black, 2=white, 3=red, 4=green,5=blue, ...)

Top


12. Hàm xoá bỏ các số 0 đứng trước giá trị số khỏi một ô xác định

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function KillZeros(rng As Range) 
   Dim intS As Integer 
   intS = rng 
   While intS - Int(intS) > 0 
   intS = intS * 10 
   Wend 
   KillZeros = intS 
End Function 

4. Đóng cửa sổ VBE và chọn vùng B1:B5 nhập vào hàm: =KillZeros(A1).
6. Nhấn <Ctrl+Enter> và xem kết quả.

Top



13. Hàm xoá bỏ các ký tự chữ khỏi một ô xác định

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function LetterOut(rng As Range) 
   Dim i As Integer 
   For i = 1 To Len(rng) 
      Select Case Asc (Mid(rng.Value, i, 1)) 
      Case 0 To 64, 123 To 197 
         LetterOut = LetterOut & Mid(rng.Value, i, 1) 
      End Select 
   Next i 
End Function 

4. Đóng cửa sổ VBE, chọn vùng B1:B5 và nhập vào hàm: =LetterOut(A1).
5. Nhấn <Ctrl+Enter>.

Top


14. Hàm xoá bỏ tất cả ký tự số khỏi một ô xác định

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function NumberOut(rng As Range) 
   Dim i As Integer 
   For i = 1 To Len(rng) 
      Select Case Asc (Mid(rng.Value, i, 1)) 
      Case 0 To 64, 123 To 197 
      Case Else 
         NumberOut = NumberOut & Mid(rng.Value, i, 1) 
      End Select 
   Next i 
End Function 

4. Đóng cửa sổ VBE, chọn vùng B1:B5 và nhập vào hàm: =NumberOut(A1).
5. Nhấn <Ctrl+Enter>.

Top



15. Hàm xác định vị trí của ký tự số đầu tiên trong chuỗi cho trước trong ô

1. Nhập các chuỗi vào vùng A1:A5.
2. Nhấn <Alt+F11> vào VBE.
3. Vào Insert, chọn Module.
4. Nhập đoạn mã sau:

Function FirstNum(rng As Range) 
   Dim i As Integer 
   For i = 1 To Len(rng.Value) 
      Select Case Mid(rng.Value, i, 1) 
      Case 0 To 9 
         FirstNum = i 
         Exit Function 
      End Select 
   Next i 
End Function 

5. Đóng cửa sổ VBE, chọn vùng B1:B5 và nhập vào hàm: =FirstNum(A1).
6. Nhấn <Ctrl+Enter>.

Top



16. Hàm tính tổng tất cả chữ số của con số cho trước trong ô (cell)

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function Qs(rng As Range) 
   Dim i As Integer 
   For i = 1 To Len(rng.Value) 
      Qs = Qs+Cint (Mid(rng.Value, i, 1)) 
   Next i 
End Function 

4. Đóng cửa sổ VBE, chọn vùng B1:B5 và nhập vào hàm: =Qs(A1).
6. Nhấn <Ctrl+Enter>.

Top



17. Hàm tính tổng tất cả chữ số của các con số trong vùng (range)

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function QsE(Area As Range) 
   Dim i As Integer 
   Dim rng As Range 
   For Each rng In Area 
      For i = 1 To Len(rng.Value) 
         QsE = QsE+CInt (Mid(rng.Value, i, 1)) 
      Next i 
   Next rng 
End Function 

4. Đóng cửa sổ VBE, chọn ô B1 và nhập vào hàm: =QsE(A1:A5).
5. Nhấn <Enter> và xem kết quả.

Top



18. Hàm kiểm tra một worksheet có rỗng hay không

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function ShEmpty(s As String) As Boolean 
   If Application.CountA (Sheets(s).UsedRange) = 0 
   Then 
   ShEmpty = True 
Else 
   ShEmpty = False 
End If 
End Function 

4. Đóng cửa sổ VBE, chọn ô A1 trong Sheet1 nào đó và nhập vào hàm:=ShEmpty("Sheet2") , (với Sheet2 là sheet cần kiểm tra).
6. Nhấn <Enter> và xem kết quả.

Top


19. Hàm kiểm tra một worksheet có đang được bảo vệ (protected) hay không

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function ShProt(s As String) As Boolean 
   On Error GoTo errorM 
   If Sheets(s).ProtectContents = True Then 
      ShProt = True 
   End If 
   Exit Function 
errorM: 
   ShProt = False 
End Function 

4. Đóng cửa sổ VBE, chọn ô A1 trong Sheet1 và nhập vào hàm: =shProt("Sheet2") , (với Sheet2 là sheet cần kiểm tra).
6. Nhấn <Enter> và xem kết quả.

Top
 

20. Hạm tạo AutoText của riêng bạn

1. Nhấn <Alt+F11> vào VBE.
2. Vào Insert, chọn Module.
3. Nhập đoạn mã sau:

Function AuTxt(rng As Range) As String 
   Select Case rng.Value 
   Case 1 
      AuTxt = "fire" 
   Case 2 
      AuTxt = "water" 
   Case 3 
      AuTxt = "heaven" 
   Case Else 
      AuTxt = "invalid text" 
   End Select 
End Function 

4. Đóng cửa sổ VBE, chọn vùng B1:B4 và nhập vào hàm: =AuTxt(A1).
5. Nhấn <Ctrl+Enter>.


 

Top

 
Free Web Hosting