Showing posts with label TRONG VBA. Show all posts
Showing posts with label TRONG VBA. Show all posts

Sunday, April 14, 2019

Học lập trình VBA qua 17 chuyên đề - BÀI 2. LÀM VIỆC VỚI BIẾN TRONG VBA

Biến (variables) là gì  là một giá trị dữ liệu có thể thay đổi
Tên biến:
  •  Phải nhỏ hơn 25 ký tự
  •  Không có khoảng trống
  • Không được bắt đầu với con số
  • Thời gian sống
Kiểu biến
  • Dim password As String
  • Dim yourName As String *10
  • Dim firstnum As Integer
  • Dim secondnum As Integer
  • Dim total As Integer
  • Dim BirthDay As Date
Kiểu biến số:
Kieubienso-768x497



Kiểu biến số

Kiểu biến chuối:
Kieubienchuoi



Kiểu biến chuỗi

Toán tử
Toantu



Toán tử trong VBA

Ví dụ:
Private Sub CommandButton1_Click()
Dim YourName As String, BirthDay As Date, Income As Currency
YourName = “Alex”
BirthDay = “1 April 1980”
Income = 1000
Range(“A1”) = YourName
Range(“A2”) = BirthDay
Range(“A3”) = Income
End Sub

DÙNG IF THEN ELSE TRONG VBA

Cấu trúc lệnh

If Điều kiện 1 Then
Biểu thức 1
Elseif  Điều kiện 2  then
Biểu thức 2
Else
Biểu thức 3
End If

Điều kiện

  • Toán tử
=  bằng
> Lớn hơn
< nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
<> khác
  • Logic
And  Và
or Hoặc
Xor cả 2 đúng hoặc sai là đúng
Not phủ định

Ví dụ 1
Private Sub CommandButton1_Click()
Dim firstnum, secondnum As Single
firstnum = Cells(1,1).Value
secondnum = Cells(1,2).Value
If firstnum>secondnum Then
  MsgBox “ The first number is greater than the second number”
If firstnum<secondnum Then
  MsgBox “ The first number is less than the second number”
Else
  MsgBox “ The two numbers are equal ”
End If
End Sub
Ví dụ 2
Private Sub CommandButton1_Click()
Dim mark As Integer
Dim grade As String
mark = Int(Rnd * 100)
Cells(1, 1).Value = mark
If mark < 20 And mark >= 0 Then
grade = “F”
Cells(2, 1).Value = grade
ElseIf mark < 30 And mark >= 20 Then
grade = “E”
Cells(2, 1).Value = grade
ElseIf mark < 40 And mark >= 30 Then
grade = “D”
Cells(2, 1).Value = grade
ElseIf mark < 50 And mark >= 40 Then
grade = “C-“
Cells(2, 1).Value = grade
ElseIf mark < 60 And mark >= 50 Then
grade = “C”
Cells(2, 1).Value = grade
ElseIf mark < 70 And mark >= 60 Then
grade = “C+”
Cells(2, 1).Value = grade
ElseIf mark < 80 And mark >= 70 Then
grade = “B”
Cells(2, 1).Value = grade
ElseIf mark <= 100 And mark > -80 Then
grade = “A”
Cells(2, 1).Value = grade
End If
End Sub

Tạo hàm cắt họ, tên, họ đệm trong VBA

Khi bạn sử dụng Excel, thao tác với danh sách họ tên khách hàng, học sinh, học viên, … nhưng danh sách này lại bao gồm họ tên đầy đủ trong khi bạn lại muốn tách riêng cột tên khỏi cột họ tên này.
Tao-ham-cat-ho-ten-ho-dem-trong-vba-3
  • Bước 1: Khởi động chương trình Microsoft Excel.
  • Bước 2: Trong Menu Tool chọn Macro Visual Basic Editor. (Có thể sử dụng tổ hợp phím Alt + F11). Cửa sổ Microsoft Visual Basic xuất hiện.
Tao-ham-cat-ho-ten-ho-dem-trong-vba-1
  • Bước 3: Trong Menu Insert chọnModule. Cửa sổ Code xuất hiện.
Tao-ham-cat-ho-ten-ho-dem-trong-vba-2
  • Bước 4: Copy toàn bộ đoạn Code sau vào trong cửa sổ Code
Function CatTen(str As String) As String
    Dim mlen As Long
    Dim i As Long
    mlen = Len(str)
    For i = mlen To 1 Step -1
        If Mid(str, i, 1) = ” ” Then
            Exit For
        End If
    Next
    If i <> 0 Then
        CatTen = Trim(Mid(str, i + 1, mlen – i))
    Else
        CatTen = Trim(str)
    End If
End Function
Function CatHo(str As String) As String
    Dim mlen As Long
    Dim i As Long
    mlen = Len(str)
    For i = 1 To mlen
        If Mid(str, i, 1) = ” ” Then
            Exit For
        End If
    Next
    If i <> 0 Then
        CatHo = Trim(Mid(str, 1, i – 1))
    Else
        CatHo = Trim(str)
    End If
End Function
 Function CatHoDem(str As String) As String
    Dim mlen As Long
    Dim i, j, k As Long
    mlen = Len(str)
    k = 0
    For i = mlen To 1 Step -1
        If Mid(str, i, 1) = ” ” Then
            Exit For
        End If
        k = k + 1
    Next
    For j = 1 To mlen
        If Mid(str, j, 1) = ” ” Then
            Exit For
        End If
        k = k + 1
    Next
    If i <> 0 Then
        CatHoDem = Trim(Mid(str, j, mlen – k))
    Else
        CatHoDem = Trim(str)
    End If
End Function
  • Bước 5: Để quay lại màn hìnhlàm việc chính của Excel, bạn vào Menu File chọn Close And Return to Microsoft Excel (Hoặc sử dụng tổ hợp phím Alt + Q).
  • Bước 6: Sử dụng những hàm đã tạo ở trên
Tao-ham-cat-ho-ten-ho-dem-trong-vba-3
Tại ô B1 ta có Họ tên đầy đủ của 1 người (Hình 3). Để cắt tên của người đó, bạn cần thực hiện các bước sau:
  •  Đưa vệt sáng đến ô B2, nhập vào hàm =Cathodem(B1) và nhấn Enter. Kết quả ô B2 có giá trị là Thị Ngọc.
  • Tương tự, nếu bạn muốn cắt Họ thì dùng hàm =Catho(B1), cắt Tên thì dùng hàm Catten(B1)

SELECT CASE…… END CASE TRONG VBA

Select case…… End case cũng thường được dùng cho những câu lệnh điều kiện, như bài trước chúng ta cũng làm quen với câu lệnh điều kiện If, tuy nhiên nếu phải làm việc với nhiều lựa chọn thì câu lệnh điều kiện if sẽ quá cồng kềnh, trong trường hợp đó chúng ta sẽ sử dụng lệnh Select case.
Objects-349ediwenaob6p7oqfd1j4

Cấu trúc lệnh:
Select Case variable
Case value 1
Statement
Case value 2
Statement
Case value 3
Statement
Case Else
Statement
End Select
Ví dụ
Private Sub CommandButton1_Click()
Dim Diem As Single
Dim Xeploai As String
Diem = Cells(1, 1).Value
Select Case mark
Case 0 To 20
Xeploai = “F”
Case 20 To 29
Xeploai = “E”
Case 30 To 39
Xeploai = “D”
Case 40 To 59
Xeploai = “C”
Case 60 To 79
Xeploai = “B”
Case 80 To 100
Xeploai = “A”
Case Else
Xeploai = “Loi!”
End Select
Cells(1, 2) = Xeploai
End Sub

Over 50 Ebooks Excel and VBA free Download

1. Statistics and Probability for Engineering Applications With Microsoft Excel by W.J. DeCoursey - PDF Free Download Download Siz...