- 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 độ
- Ngày 09/8/2017: Khi các bạn là Sup của một số Vùng và trong Vùng có một số nhân viên, công ty thì đưa ra cách tính lương của bạn là trung bình của lương các nhân viên trong các vùng bạn quản lý, video sau sẽ giải đáp cho bạn:
Phạm Minh Tùng /  at 8/09/2017 08:18:00 CH /  No comments
- Ngày 09/8/2017: Khi các bạn là Sup của một số Vùng và trong Vùng có một số nhân viên, công ty thì đưa ra cách tính lương của bạn là trung bình của lương các nhân viên trong các vùng bạn quản lý, video sau sẽ giải đáp cho bạn: