Top doanh nghiệp đã đăng ký cho nhân viên
Bạn sẽ học được gì?
Khoá học này sẽ có:
Video
8h 53m giờ học
Article
0 bài viết chuyên môn
Material
1 tài liệu đính kèm
Exam questions
0 đề thi ghi nhớ kiến thức
Nội dung khoá học
7 Chương . 43 bài giảng . 8h 53m giờ học
Mô tả khoá học
Tiếp nối các khóa học EXG01, VBAG01, VBAG02 - nhằm giúp học viên có thể sử dụng linh hoạt và thực tế, ứng dụng nhanh hơn vào công việc, Gitiho tiếp tục cho ra mắt khóa học VBAG03 - Chuyên đề ứng dụng VBA qua code mẫu. Với khóa học này, học viên sẽ rút ngắn thời gian học VBA dựa trên code mẫu có sẵn, Biết cách ứng dụng VBA trong công việc thực tế dựa trên các chuyên đề thực hành; Kết hợp giữa các kiến thức: Excel, VBA, kiến thức chuyên ngành để vận dụng vào thực tế; Tối đa hóa việc thực hành VBA với hệ thống bài tập và bài kiểm tra chi tiết, đầy đủ.
Giảng viên:
4.7 điểm đánh giá
498 đánh giá
233,624 học viên
90 khóa học
Khoá học cùng chủ đề
Đánh giá của học viên
5 điểm đánh giá . 1 lượt đánh giá
Trần Ngọc Hà
11:03 03/06/2022
Hỏi đáp khóa học
Thảo luận về bài học
82 thảo luận
TRẦN THANH TUẤN 12 Dec 2022
Trợ giảng Gitiho (Huyền Trang) 13 Dec 2022
Chào bạn! Bạn giúp mình đẩy file lên để giảng viên xem xét kỹ hơn nhé
Phạm Anh Tuấn 23 Dec 2022
Thầy cho mình hỏi thay vì sử dụng hàm IF và tạo thêm 01 cột “Số lượng” thì mình có thể dùng hàm INDEX và MATCH để tìm kiếm theo nhiều điều kiện được ko
MATCH của hai giá trị là “Mã hàng” và “Ngày”
Dương Mạnh Quân [Chuyên gia] 24 Dec 2022
index match theo nhiều điều kiện sẽ phức tạp hơn (do phải dùng công thức mảng). Thay vào đó chúng ta có thể tạo 1 cột ghép giữa 2 điều kiện để dùng dưới dạng 1 điều kiện sẽ dễ hình dung hơn (về bản chất index match dạng mảng là tạo ra mảng ghép các điều kiện cũng tương tự như vậy)
Phạm Anh Tuấn 05 Dec 2022
Thầy cho mình hỏi nếu mình viết ngắn gọn như vậy, so với cách dùng hàm Max thì có nhược điểm gì ko ah? hoặc nếu dùng hàm Max thì sẽ có ưu điểm gì hơn.
=================================
Private Sub UserForm_Initialize()
'Xac dinh combobox
Dim i As Integer
i = Sheet5.Range("C" & Rows.Count).End(xlUp).Row
Me.cb_NhomHang.List = Sheet5.Range("C5:C" & i).Value
=================================
'Xac dinh gia tri so thu tu - tu danh so thu tu
Dim j As Integer
j = Sheet6.Range("B" & Rows.Count).End(xlUp).Row
Me.tb_STT.Value = j - 5 + 1
=================================
End Sub
Dương Mạnh Quân [Chuyên gia] 09 Dec 2022
Thực ra đánh số thứ tự có nhiều cách làm nên chỉ cần dùng cách nào hợp logic là được.
Với hàm MAX có ưu điểm bỏ qua các giá trị text, nên vẫn có thể đánh stt trong trường hợp có lẫn ký tự text trong cột STT.
Còn dùng code như trên sẽ có nhược điểm là nếu lẫn text sẽ bị lỗi.
Phạm Anh Tuấn 05 Dec 2022
Thầy cho mình hỏi nếu mình viết ngắn gọn như vậy, so với cách dùng hàm Max thì có nhược điểm gì ko ah? hoặc nếu dùng hàm Max thì sẽ có ưu điểm gì hơn.
=================================
Private Sub UserForm_Initialize()
'Xac dinh combobox
Dim i As Integer
i = Sheet5.Range("C" & Rows.Count).End(xlUp).Row
Me.cb_NhomHang.List = Sheet5.Range("C5:C" & i).Value
=================================
'Xac dinh gia tri so thu tu - tu danh so thu tu
Dim j As Integer
j = Sheet6.Range("B" & Rows.Count).End(xlUp).Row
Me.tb_STT.Value = j - 5 + 1
=================================
End Sub
Dương Mạnh Quân [Chuyên gia] 09 Dec 2022
Thực ra đánh số thứ tự có nhiều cách làm nên chỉ cần dùng cách nào hợp logic là được.
Với hàm MAX có ưu điểm bỏ qua các giá trị text, nên vẫn có thể đánh stt trong trường hợp có lẫn ký tự text trong cột STT.
Còn dùng code như trên sẽ có nhược điểm là nếu lẫn text sẽ bị lỗi.
Phạm Anh Tuấn 08 Dec 2022
Xin hỏi nếu mình tạo “uf_XoaDong" và md_XoaDong rồi gán vào Shape Xóa để xóa có nhanh hơn cách này ko thầy?
=============================================
[uf_XoaDong]
Private Sub CommandButton1_Click()
Dim i As Integer
i = ActiveCell.Row
Sheet6.Range("B" & i & ":G" & i).ClearContents
Unload Me
End Sub
=============================================
Sub XoaDong()
Dim i As Long
i = ActiveCell.Row
uf001_XoaDong.Show
End Sub
Dương Mạnh Quân [Chuyên gia] 08 Dec 2022
Khi xóa dữ liệu bằng VBA, thao tác diễn ra rất nhanh và không khôi phục lại được (không giống như excel thường có phím ctrl + Z để undo thao tác).
Do đó lệnh xóa này thường có hạn chế, có kiểm soát và hơi “rườm rà” một chút để đòi hỏi người dùng phải chắc chắn với thao tác này.
Nếu muốn nhanh thì có thể xóa trực tiếp trong excel mà không cần qua lệnh VBA (bạn có thể cho phép người dùng làm việc này mà không khóa bảng tính)
Phạm Văn Vũ 13 Nov 2022
Dương Mạnh Quân [Chuyên gia] 14 Nov 2022
Việc này mình nghĩ cần phải có quy luật thì mới làm được, còn nếu không có (mà phải tự hiểu) thì không được.
Nếu xét về quy luật trên hình thì ta có:
Dim i as long, j as long
j = 2 'bien xac dinh dong ket qua o cot E
For i = 1 to dongCuoi
Range("E" & j).value = range("A" & i*3).value
Range("F" & j).value = range("B" & i*3 - 1).value
j = j + 1
Next i
pham thanh tung 17 Oct 2022
Tôi sử dụng code Application.WorksheetFunction.Max như bài giảng nhưng bị lỗi
Dương Mạnh Quân [Chuyên gia] 17 Oct 2022
Khi viết dấu & bạn cần có dấu cách chứ không viết liền nhé (ở dòng đang báo màu đỏ)
Phạm Quang Viện 25 Aug 2022
Ad cho em hỏi trường nếu muốn lọc nhiều điều kiện bằng VBA Excel thì sao ạ ?
Ví dụ em muốn lọc mã , tên luôn
Dương Mạnh Quân [Chuyên gia] 26 Aug 2022
Bạn nên tạo ra ở 2 ô lọc riêng, mỗi ô 1 điều kiện sẽ tốt hơn
Trần thị anh trang 22 Aug 2022
Chào thầy/cô!
Trong phần báo cáo tồn kho e muốn nhập thời gian tùy ý mà không phải là tháng hiện hại quý 1, 2,3, 4.ví dụ từ ngày 12 tháng 3 đến 17 tháng 3 thì mình phái làm thế nào để nhập dự liêu tùy ý đó vào userform VBA ạ?
Dương Mạnh Quân [Chuyên gia] 23 Aug 2022
Việc đặt thời gian theo các mốc có sẵn mục đích chỉ giúp việc nhập Từ ngày - Đến ngày nhanh hơn thôi. Bạn có thể thêm một mục Tùy chọn vào bảng danh sách các mốc thời gian, khi chọn theo Tùy chọn thì bạn phải nhập đủ cả Từ ngày - Đến ngày là được.
nguyễn hữu trọng 19 Jun 2022
Chào thầy, sau khi em viết lập trình theo hướng dẫn của thầy thì nó xuất hiện đoạn hội thoại như thế này? Em đã lên mạng nghiên cứu nhưng không thành công? Nhờ thầy hỗ trợ với ạ, em cảm ơn thầy nhiều.
https://gitiho.com/discussion/image-d..." style="max-width:100%;margin:0.5rem 0;">
Dương Mạnh Quân [Chuyên gia] 20 Jun 2022
Lỗi này là bạn đang gọi 1 đối tượng chưa được khai báo.
Bạn có thể kiểm tra lại tên của combobox xem đã viết đúng tên chưa nhé.
Ms Na 29 Apr 2022
Giảng viên cho em hỏi, em gửi file excel tự động hàng loạt qua mail nhưng có lỗi: có file excel thì được đính kèm và gửi đi, nhưng có file thì lại không đính kèm vào mail, lỗi này là do nguyên nhân gì và cách thức xử lý như thế nào ạ. Em cảm ơn.
Dương Mạnh Quân [Chuyên gia] 30 Apr 2022
Có thể do tốc độ code chạy nhanh quá, trong khi việc đính kèm file dung lượng lớn khiến email bị chậm. Bạn có thể đặt thêm code tăng thời gian chờ đợi giữa các lần gửi mail như sau:
Application.Wait (Now + TimeValue("0:00:02"))
Application.SendKeys "%s"
Chú ý đoạn code trên đặt sau lệnh Send của email nhé.
Lương Vi Hào 06 Mar 2022
Chào Thầy,
Em đang học tới bài chương 2 - 5.04, phần tạo userform như trong hình đính kèm . Tại vì nhập danh sách hàng hoá là có tính liên tục nên em muốn sau khi nhấn nút lưu là dữ liệu trong bảng userform sẽ bị xoá đi. Vậy e phải thêm code thế nào để mỗi lần nhập data mới là tự động xoá nội dung
Dương Mạnh Quân [Chuyên gia] 07 Mar 2022
Bạn để ý mình có hướng dẫn nội dung này trong bài rồi nhé, là lệnh:
- Đầu tiên đóng userform lại:
Unload Me
- Ngay sau đó mở userform lên
Ten_userform.Show
Khi userform được đóng-mở như vậy nó sẽ trở lại trạng thái ban đầu khi chưa nhập nội dung. Các này giúp bạn làm mới userform rất nhanh.
Trần thị anh trang 07 Dec 2021
Chào thầy!
Em làm tới bài 18.03 mà nó báo lỗi run_time eror '1004' mà e tìm không ra lỗi. Ở đoạn viết code cho hàm match.Thầy giúp em được không. Bài của em có thay đổi cột trong sheet.sheet phieu_nhap cột nhóm hàng là cột E, cột mã hàng là cột F.sheet DS_hanghoa cột nhóm hàng là cột B, cột mã hàng là cột C
Dương Mạnh Quân [Chuyên gia] 04 Jan 2022
Với hàm tìm kiếm như VLOOKUP, MATCH khi viết trong VBA dễ gặp lỗi như không tìm thấy, không có dữ liệu tìm kiếm...
Do đó thường gắn kèm với lệnh bẫy lỗi là
On Error Resume Next
Sau khi dùng hàm xong lại đặt lệnh bỏ cơ chế bẫy lỗi
On Error Go to 0
Bạn để ý cách dùng các dòng lệnh này trong bài nhé.
Trần thị anh trang 10 Dec 2021
Chào thầy!
Trong bài 16.02 Phương pháp tạo phiếu nhập kho tự động sẽ hướng dẫn sau.mà em làm xong phần phiếu nhập mà ko thấy cách tạo phiếu nhập kho tự động ở đâu. Thầy có thế chỉ nó ở phần nào không ạ?
Dương Mạnh Quân [Chuyên gia] 13 Dec 2021
Ở bài 21 có phần lưu phiếu sẽ liên quan tới vấn đề nhảy số phiếu tiếp theo. Bạn xem ở bài này nhé.
Kevin nguyen 07 Jan 2022
Dương Mạnh Quân [Chuyên gia] 17 Jan 2022
File mẫu có ở trong chương 1 bạn nhé. Bạn vào đây để tải tài liệu về. Nội dung bài giảng tính từ chương 2.