- Đầu tiên ta sẽ xét cách khai báo và truy xuất phần tử trong List
Sub Main()
Dim l As New List(Of Integer)
l.Add(10)
l.Add(20)
Console.WriteLine("Phan tu 1 la {0}, phan tu thu 2 la {1} ", l.Item(0), l.Item(1))
Console.ReadLine()
End Sub
- Tiếp theo chúng ta cùng xét ứng dụng tính tổng n số nguyên nhập vào
Sub Main()
Dim n As Integer, i As Integer, so As Integer, tong As Integer
Dim l As New List(Of Integer)
Console.WriteLine("So Luong so nguyen ma ban muon tinh tong: ")
n = Console.ReadLine
For i = 1 To n
Console.WriteLine("moi ban nhap so thu: " & i)
so = Console.ReadLine
l.Add(so)
Next
For i = 0 To l.Count - 1
tong += l.Item(i)
Next
Console.WriteLine("Tong cua {0} so nguyen nhap vao la {1} ", n, tong)
Console.ReadLine()
End Sub
=> qua các ví dụ trên ta thấy List có ưu điểm rất nhiều so với mảng, list hỗ trợ rất nhiều phương thức mà ta sẽ khám phá ở những bài sau
Phạm Minh Tùng /  at 9/26/2017 10:43:00 CH /  No comments
- Đầu tiên ta sẽ xét cách khai báo và truy xuất phần tử trong List
Sub Main()
Dim l As New List(Of Integer)
l.Add(10)
l.Add(20)
Console.WriteLine("Phan tu 1 la {0}, phan tu thu 2 la {1} ", l.Item(0), l.Item(1))
Console.ReadLine()
End Sub
- Tiếp theo chúng ta cùng xét ứng dụng tính tổng n số nguyên nhập vào
Sub Main()
Dim n As Integer, i As Integer, so As Integer, tong As Integer
Dim l As New List(Of Integer)
Console.WriteLine("So Luong so nguyen ma ban muon tinh tong: ")
n = Console.ReadLine
For i = 1 To n
Console.WriteLine("moi ban nhap so thu: " & i)
so = Console.ReadLine
l.Add(so)
Next
For i = 0 To l.Count - 1
tong += l.Item(i)
Next
Console.WriteLine("Tong cua {0} so nguyen nhap vao la {1} ", n, tong)
Console.ReadLine()
End Sub
=> qua các ví dụ trên ta thấy List có ưu điểm rất nhiều so với mảng, list hỗ trợ rất nhiều phương thức mà ta sẽ khám phá ở những bài sau
I - Biến Mảng 1 Chiều
- Đầu tiên ta sẽ vừa khai báo, vừa khởi tạo biến mảng kiểu Integer với 101 phần tử
Sub Main()
Dim Ghe_Int() as Integer = New As Integer(100) {}
' Sau đó ta sẽ gán phân tử cho mảng
Ghe_int(0) =1
Ghe_int(1)=2
' ..............................
End Sub
- Xét qua ví dụ trên bạn sẽ thấy nhược điểm của Mảng chính là dư thừa bộ nhớ, tức là chúng ta khai báo 101 phần tử nhưng chỉ sử dụng có 2 phần từ, trong khi thực tế thì ta không biết trước số phân tử thỏa mản là bao nhiêu, nên ta sẽ khai báo thừa như thế
== > Để khắc phục nhược điểm này chúng ta cùng nghiên cứu về List ở phần sau nhé II- Biến Mảng 2 Chiều
Đầu tiên ta khai báo biến như sau:
Sub Main()
Dim M2C(9, 9) As Integer
M2C(1, 5) = 6
M2C(9, 1) = 10
End Sub
- Bạn cứ hình dung mảng 2 chiều như một ma trận 2 chiều, và mảng trên có 10 * 10 = 100 phần tử
- Sau Đây mình sẽ Demo tính tổng của ma trận 2 chiều 4 dòng và 4 cột
- Ta thấy mỗi cụm có tổng là 20 => Tổng ma trận là 80 nhé
Sub Main()
Dim M2C(3, 3) As Integer
Dim i As Byte, j As Byte, Tong As Long
M2C(0, 0) = 2
M2C(0, 1) = 4
M2C(0, 2) = 6
M2C(0, 3) = 8
For i = 0 To 3
For j = 0 To 3
Tong += M2C(i, j)
Next
Next
Console.WriteLine("Tong ma tran la: " & Tong)
Console.ReadLine()
End Sub
Phạm Minh Tùng /  at 9/26/2017 09:59:00 CH /  No comments
I - Biến Mảng 1 Chiều
- Đầu tiên ta sẽ vừa khai báo, vừa khởi tạo biến mảng kiểu Integer với 101 phần tử
Sub Main()
Dim Ghe_Int() as Integer = New As Integer(100) {}
' Sau đó ta sẽ gán phân tử cho mảng
Ghe_int(0) =1
Ghe_int(1)=2
' ..............................
End Sub
- Xét qua ví dụ trên bạn sẽ thấy nhược điểm của Mảng chính là dư thừa bộ nhớ, tức là chúng ta khai báo 101 phần tử nhưng chỉ sử dụng có 2 phần từ, trong khi thực tế thì ta không biết trước số phân tử thỏa mản là bao nhiêu, nên ta sẽ khai báo thừa như thế
== > Để khắc phục nhược điểm này chúng ta cùng nghiên cứu về List ở phần sau nhé II- Biến Mảng 2 Chiều
Đầu tiên ta khai báo biến như sau:
Sub Main()
Dim M2C(9, 9) As Integer
M2C(1, 5) = 6
M2C(9, 1) = 10
End Sub
- Bạn cứ hình dung mảng 2 chiều như một ma trận 2 chiều, và mảng trên có 10 * 10 = 100 phần tử
- Sau Đây mình sẽ Demo tính tổng của ma trận 2 chiều 4 dòng và 4 cột
- Ta thấy mỗi cụm có tổng là 20 => Tổng ma trận là 80 nhé
Sub Main()
Dim M2C(3, 3) As Integer
Dim i As Byte, j As Byte, Tong As Long
M2C(0, 0) = 2
M2C(0, 1) = 4
M2C(0, 2) = 6
M2C(0, 3) = 8
- Trong quá trình nhập liệu nếu ta khai báo biến Single hoặc các biến dạng số mà người dùng họ nhập vào chuỗi thì chương trình ta viết sẽ bị lỗi, do đó ta sẽ bẫy lỗi bằng TryParse
Sub Main()
Dim hoten As String
Dim diemtoan As Single
Dim diemvan As Single
Dim dtb As Single
Dim stringtoan As String
Dim stringvan As String
Thoat:
Console.WriteLine("Nhap vao ten cua ban ")
hoten = Console.ReadLine()
Console.WriteLine("Nhap vao diem toan")
stringtoan = Console.ReadLine()
Console.WriteLine("nhap vao diem van")
stringvan = Console.ReadLine()
If Not Single.TryParse(stringtoan, diemtoan) Or Not Single.TryParse(stringvan, diemvan) Then
Console.WriteLine("Diem toan hoac Van khong dung dinh dang")
GoTo Thoat
End If
dtb = (diemtoan + diemvan) / 2
Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hoten, diemtoan, diemvan, dtb)
Console.ReadLine()
End Sub
Phạm Minh Tùng /  at 9/26/2017 01:04:00 CH /  No comments
- Trong quá trình nhập liệu nếu ta khai báo biến Single hoặc các biến dạng số mà người dùng họ nhập vào chuỗi thì chương trình ta viết sẽ bị lỗi, do đó ta sẽ bẫy lỗi bằng TryParse
Sub Main()
Dim hoten As String
Dim diemtoan As Single
Dim diemvan As Single
Dim dtb As Single
Dim stringtoan As String
Dim stringvan As String
Thoat:
Console.WriteLine("Nhap vao ten cua ban ")
hoten = Console.ReadLine()
Console.WriteLine("Nhap vao diem toan")
stringtoan = Console.ReadLine()
Console.WriteLine("nhap vao diem van")
stringvan = Console.ReadLine()
If Not Single.TryParse(stringtoan, diemtoan) Or Not Single.TryParse(stringvan, diemvan) Then
Console.WriteLine("Diem toan hoac Van khong dung dinh dang")
GoTo Thoat
End If
dtb = (diemtoan + diemvan) / 2
Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hoten, diemtoan, diemvan, dtb)
Console.ReadLine()
End Sub
1. Đầu tiên ta hãy xem một đoạn code hướng thủ tục về nhập xuất dữ liệu
Sub Main() Dim hoten As String Dim diemtoan As Single Dim diemvan As Single Dim dtb As Single
Console.WriteLine("Nhap vao ten cua ban ") hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") diemtoan = Console.ReadLine() Console.WriteLine("nhap vao diem van") diemvan = Console.ReadLine() dtb = (diemtoan + diemvan) / 2 Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hoten, diemtoan, diemvan, dtb) Console.ReadLine() End Sub
--------------------------------------------------------------------------- Sub Main() Dim hs As New CauTrucHocSinh Nhap(hs) TinhDiemTB(hs) Xuat(hs) Console.ReadKey() End Sub ---------------------------------------------------------------------------- Structure CauTrucHocSinh Dim Hoten As String Dim DiemToan As Double Dim DiemVan As Double Dim dtb As Double End Structure Sub Nhap(ByRef hs As CauTrucHocSinh) Console.WriteLine("Nhap vao ten cua ban ") hs.Hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") hs.DiemToan = Console.ReadLine() Console.WriteLine("nhap vao diem van") hs.DiemVan = Console.ReadLine() End Sub
Sub TinhDiemTB(ByRef hs As CauTrucHocSinh) hs.dtb = (hs.DiemToan + hs.DiemVan) / 2 End Sub
Sub Xuat(ByRef hs As CauTrucHocSinh) Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hs.Hoten, hs.DiemToan, hs.DiemVan, hs.dtb) End Sub
------------------------------------------ Sub Main() Dim hs As New HocSinh hs.Nhap() hs.TinhDTB() hs.Xuat() Console.ReadKey() End Sub -------------------------------------------- Public Class HocSinh Private _Hoten As String Private _diemtoan As Double Private _diemvan As Double Private _dtb As Double Public Sub Nhap() Console.WriteLine("Nhap vao ten cua ban ") _Hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") _diemtoan = Console.ReadLine() Console.WriteLine("nhap vao diem van") _diemvan = Console.ReadLine() End Sub Public Sub TinhDTB() _dtb = (_diemtoan + _diemvan) / 2 End Sub
Public Sub Xuat() Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", _Hoten, _diemtoan, _diemvan, _dtb) End Sub End Class
Phạm Minh Tùng /  at 9/26/2017 12:50:00 CH /  No comments
1. Đầu tiên ta hãy xem một đoạn code hướng thủ tục về nhập xuất dữ liệu
Sub Main() Dim hoten As String Dim diemtoan As Single Dim diemvan As Single Dim dtb As Single
Console.WriteLine("Nhap vao ten cua ban ") hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") diemtoan = Console.ReadLine() Console.WriteLine("nhap vao diem van") diemvan = Console.ReadLine() dtb = (diemtoan + diemvan) / 2 Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hoten, diemtoan, diemvan, dtb) Console.ReadLine() End Sub
--------------------------------------------------------------------------- Sub Main() Dim hs As New CauTrucHocSinh Nhap(hs) TinhDiemTB(hs) Xuat(hs) Console.ReadKey() End Sub ---------------------------------------------------------------------------- Structure CauTrucHocSinh Dim Hoten As String Dim DiemToan As Double Dim DiemVan As Double Dim dtb As Double End Structure Sub Nhap(ByRef hs As CauTrucHocSinh) Console.WriteLine("Nhap vao ten cua ban ") hs.Hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") hs.DiemToan = Console.ReadLine() Console.WriteLine("nhap vao diem van") hs.DiemVan = Console.ReadLine() End Sub
Sub TinhDiemTB(ByRef hs As CauTrucHocSinh) hs.dtb = (hs.DiemToan + hs.DiemVan) / 2 End Sub
Sub Xuat(ByRef hs As CauTrucHocSinh) Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", hs.Hoten, hs.DiemToan, hs.DiemVan, hs.dtb) End Sub
------------------------------------------ Sub Main() Dim hs As New HocSinh hs.Nhap() hs.TinhDTB() hs.Xuat() Console.ReadKey() End Sub -------------------------------------------- Public Class HocSinh Private _Hoten As String Private _diemtoan As Double Private _diemvan As Double Private _dtb As Double Public Sub Nhap() Console.WriteLine("Nhap vao ten cua ban ") _Hoten = Console.ReadLine() Console.WriteLine("Nhap vao diem toan") _diemtoan = Console.ReadLine() Console.WriteLine("nhap vao diem van") _diemvan = Console.ReadLine() End Sub Public Sub TinhDTB() _dtb = (_diemtoan + _diemvan) / 2 End Sub
Public Sub Xuat() Console.WriteLine("ten cua ban {0}, diem toan {1}, diem van {2}, diem trung binh {3}", _Hoten, _diemtoan, _diemvan, _dtb) End Sub End Class
Format(0.25,"Percent") ==>kết quả sẽ cho ra : 25.00% , cũng giống như VBA trong Excel, access nó cũng có các định dạng sẵn như Excel, các bạn có thể thay đổi các định dạng khác nhé
Phạm Minh Tùng /  at 9/25/2017 03:06:00 CH /  No comments
Format(0.25,"Percent") ==>kết quả sẽ cho ra : 25.00% , cũng giống như VBA trong Excel, access nó cũng có các định dạng sẵn như Excel, các bạn có thể thay đổi các định dạng khác nhé
- Các bạn thay &H1A& thành các đường dẫn đặc biệt bên dưới nhé
Sub Test()
Dim KhoiTao, ThuMuc, DoiTuong
Set KhoiTao = CreateObject("Shell.Application")
Set ThuMuc = KhoiTao.Namespace(&H1A&)
Set DoiTuong = ThuMuc.Self
MsgBox DoiTuong.Path
Set KhoiTao = Nothing
Set ThuMuc = Nothing
Set DoiTuong = Nothing
End Sub
3. &H1& Internet Explorer 4. &H2& Programs 5. &H3& Control Panel 6. &H4& Printers and Faxes 7. &H5& My Documents 8. &H6& Favorites 9. &H7& Startup 10. &H8& My Recent Documents 11. &H9& SendTo 12. &Ha& Recycle Bin 13. &Hb& Start Menu 14. &Hd& My Music 15. &He& My Videos 16. &H10& Desktop 17. &H11& My Computer 18. &H12& My Network Places 19. &H13& NetHood 20. &H14& Fonts 21. &H15& Templates 22. &H16& All Users Start Menu 23. &H17& All Users Programs 24. &H18& All Users Startup 25. &H19& All Users Desktop 26. &H1a& Application Data 27. &H1b& PrintHood 28. &H1c& Local Settings\Application Data 29. &H19& All Users Favorites 30. &H20& Local Settings\ Temporary Internet Files 31. &H21& Cookies 32. &H22& Local Settings\History 33. &H23& All Users Application Data 34. &H24& Windows 35. &H25& System32 36. &H26& Program Files 37. &H27& My Pictures 38. &H28& User Profile 39. &H2b& Common Files 40. &H2e& All Users Templates 41. &H2f& Administrative Tools 42. &H31& Network Connections
- Các bạn thay &H1A& thành các đường dẫn đặc biệt bên dưới nhé
Sub Test()
Dim KhoiTao, ThuMuc, DoiTuong
Set KhoiTao = CreateObject("Shell.Application")
Set ThuMuc = KhoiTao.Namespace(&H1A&)
Set DoiTuong = ThuMuc.Self
MsgBox DoiTuong.Path
Set KhoiTao = Nothing
Set ThuMuc = Nothing
Set DoiTuong = Nothing
End Sub
3. &H1& Internet Explorer 4. &H2& Programs 5. &H3& Control Panel 6. &H4& Printers and Faxes 7. &H5& My Documents 8. &H6& Favorites 9. &H7& Startup 10. &H8& My Recent Documents 11. &H9& SendTo 12. &Ha& Recycle Bin 13. &Hb& Start Menu 14. &Hd& My Music 15. &He& My Videos 16. &H10& Desktop 17. &H11& My Computer 18. &H12& My Network Places 19. &H13& NetHood 20. &H14& Fonts 21. &H15& Templates 22. &H16& All Users Start Menu 23. &H17& All Users Programs 24. &H18& All Users Startup 25. &H19& All Users Desktop 26. &H1a& Application Data 27. &H1b& PrintHood 28. &H1c& Local Settings\Application Data 29. &H19& All Users Favorites 30. &H20& Local Settings\ Temporary Internet Files 31. &H21& Cookies 32. &H22& Local Settings\History 33. &H23& All Users Application Data 34. &H24& Windows 35. &H25& System32 36. &H26& Program Files 37. &H27& My Pictures 38. &H28& User Profile 39. &H2b& Common Files 40. &H2e& All Users Templates 41. &H2f& Administrative Tools 42. &H31& Network Connections
- Trong thực tế khi lập trình VBA trong Excel đôi khi chúng ta cần chuyển Coumn Header từ dạng số sang dạng chữ để thao tác với Hàm Range , hoặc trường hợp ta thao tác với Cells thì có thể sử dụng dạng số chẳng hạn, thì hôm nay mình xin tổng hợp lại các cách để thực hiện việc đó:
=> Chuyển Column dạng chữ sang số
Function
GetColumnNumber(ByVal strColumnName As String)
Function
GetColumnHeader4(intColumnNumber As Integer) As String
If intColumnNumber > 26 Then
GetColumnHeader4 =
GetColumnHeader4((intColumnNumber - ((intColumnNumber - 1) Mod 26)) / 26) +
Chr((intColumnNumber - 1) Mod 26 + 65)
Else
GetColumnHeader4 = Chr(intColumnNumber
+ 64)
End If
End Function
Phạm Minh Tùng /  at 9/10/2017 08:51:00 SA /  No comments
- Trong thực tế khi lập trình VBA trong Excel đôi khi chúng ta cần chuyển Coumn Header từ dạng số sang dạng chữ để thao tác với Hàm Range , hoặc trường hợp ta thao tác với Cells thì có thể sử dụng dạng số chẳng hạn, thì hôm nay mình xin tổng hợp lại các cách để thực hiện việc đó:
=> Chuyển Column dạng chữ sang số
Function
GetColumnNumber(ByVal strColumnName As String)
- Để chèn hình ảnh vào trong excel các bạn chuẩn bị 1 thư mục chứa các hình ảnh cần thiết, và 1 file excel cần chèn hình ảnh, sau đó xem video bên dưới để thực hiện.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Or Target.Row = 1 Then Exit Sub
On Error GoTo Err_
Target(, 2).Worksheet.Shapes(Target.Address).Delete
Err_:
With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Target.Value & ".jpg")
.Name = Target.Address
.Top = Target.Top
.Left = Target(, 2).Left
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = Target.Height
.ShapeRange.Width = Target(, 2).Width
End With
Target.Offset(1, 0).Select
End Sub
Nếu Các bạn muốn copy một hình có sẵn trên sheet khác thì có thể copy code bên dưới nhé, và xem video mình họa, ở đây sheet dữ liệu là sheet2, nếu các bạn đặt ở sheet khác thì có thế thay đổi cho phù hợp
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Or Target.Row = 1 Then Exit Sub
On Error Resume Next
Target(, 2).Worksheet.Shapes(Target.Address).Delete
On Error GoTo Thoat
With Sheet2
.Shapes(.Range("data").Find(Target.Value, , xlValues, xlWhole).Value).CopyPicture
End With
ActiveSheet.PasteSpecial
With Selection
.Name = Target.Address
.Top = Target.Top
.Left = Target(, 2).Left
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = Target.Height
.ShapeRange.Width = Target(, 2).Width
End With
Thoat:
Target.Offset(1, 0).Select
End Sub
Phạm Minh Tùng /  at 9/05/2017 09:35:00 SA /  8 comments
- Để chèn hình ảnh vào trong excel các bạn chuẩn bị 1 thư mục chứa các hình ảnh cần thiết, và 1 file excel cần chèn hình ảnh, sau đó xem video bên dưới để thực hiện.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Or Target.Row = 1 Then Exit Sub
On Error GoTo Err_
Target(, 2).Worksheet.Shapes(Target.Address).Delete
Err_:
With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Target.Value & ".jpg")
.Name = Target.Address
.Top = Target.Top
.Left = Target(, 2).Left
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = Target.Height
.ShapeRange.Width = Target(, 2).Width
End With
Target.Offset(1, 0).Select
End Sub
Nếu Các bạn muốn copy một hình có sẵn trên sheet khác thì có thể copy code bên dưới nhé, và xem video mình họa, ở đây sheet dữ liệu là sheet2, nếu các bạn đặt ở sheet khác thì có thế thay đổi cho phù hợp
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Or Target.Row = 1 Then Exit Sub
On Error Resume Next
Target(, 2).Worksheet.Shapes(Target.Address).Delete
On Error GoTo Thoat
With Sheet2
.Shapes(.Range("data").Find(Target.Value, , xlValues, xlWhole).Value).CopyPicture
End With
ActiveSheet.PasteSpecial
With Selection
.Name = Target.Address
.Top = Target.Top
.Left = Target(, 2).Left
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = Target.Height
.ShapeRange.Width = Target(, 2).Width
End With
Thoat:
Target.Offset(1, 0).Select
End Sub
- Nguyên nhân chính là do tính bảo mật nên những file chm khi download trên mạng về thì đều bị lock nên ta không thể xem được, vì thế ta right click lên file chọn Property và bấm nút Unlock
Phạm Minh Tùng /  at 8/27/2017 09:21:00 CH /  No comments
- Nguyên nhân chính là do tính bảo mật nên những file chm khi download trên mạng về thì đều bị lock nên ta không thể xem được, vì thế ta right click lên file chọn Property và bấm nút Unlock
- Ngày 26/8/2017: Khi các bạn làm việc vơi Họ tên, mà các bạn nhập tên và họ liền nhau khi đó chúng ta cần tách tên sang một cột riêng, và người lại ta đang có 2 cột họ và tên và chúng ta cần gộp lại hoặc ghép các cột khác nhau thành một cột thì tiện ích sau đây sẽ giúp bạn.
Phạm Minh Tùng /  at 8/26/2017 10:56:00 SA /  1 comment
- Ngày 26/8/2017: Khi các bạn làm việc vơi Họ tên, mà các bạn nhập tên và họ liền nhau khi đó chúng ta cần tách tên sang một cột riêng, và người lại ta đang có 2 cột họ và tên và chúng ta cần gộp lại hoặc ghép các cột khác nhau thành một cột thì tiện ích sau đây sẽ giúp bạn.
- Ngày 26/8/2017: giả sử trong file excel ta có rất nhiều sheet, giờ muốn tạo hyperlink đến các sheet đó, nhưng nếu làm thủ công thì rất mất thời gian, các bạn xem video nhé, và download file ở bên dưới
Phạm Minh Tùng /  at 8/26/2017 10:28:00 SA /  No comments
- Ngày 26/8/2017: giả sử trong file excel ta có rất nhiều sheet, giờ muốn tạo hyperlink đến các sheet đó, nhưng nếu làm thủ công thì rất mất thời gian, các bạn xem video nhé, và download file ở bên dưới
- Ngày 10/8/2017: Khi bạn có một danh sách hàng hóa rất nhiều, nhưng đến khi nhập hàng hóa mới, bạn cần có 1 ComboBox để load lại các hàng hóa đã nhập, loại bỏ hàng hóa trùng, sắp xếp theo tên của hàng hóa, sau đây là video minh họa.
Phạm Minh Tùng /  at 8/10/2017 01:18:00 CH /  No comments
- Ngày 10/8/2017: Khi bạn có một danh sách hàng hóa rất nhiều, nhưng đến khi nhập hàng hóa mới, bạn cần có 1 ComboBox để load lại các hàng hóa đã nhập, loại bỏ hàng hóa trùng, sắp xếp theo tên của hàng hóa, sau đây là video minh họa.
- Ngày 10/8/2017: khi các bạn muốn đánh giá mức độ hoàn thành công việc theo một tiến độ cho trước, mà cụ thể ở đây mình sẽ ví dụ sẽ có 4 mức độ hoàn thành, chúng ta có thể dùng Icon để biểu thị tiến độ
Phạm Minh Tùng /  at 8/10/2017 08:34:00 SA /  No comments
- Ngày 10/8/2017: khi các bạn muốn đánh giá mức độ hoàn thành công việc theo một tiến độ cho trước, mà cụ thể ở đây mình sẽ ví dụ sẽ có 4 mức độ hoàn thành, chúng ta có thể dùng Icon để biểu thị tiến độ