Sách và tài liệu về VBA

Liên hệ QC

nguyenhongphong

Thành viên hoạt động
Tham gia
12/3/08
Bài viết
126
Được thích
13
Gần 1 tháng nay e sưu tập và đọc 1 số bài viết về Macro và VBA
*Chập chững VBA của thầy SQ_DA
*Kiến thức cơ bản về Macro trong Excel 2003 của thầy Phan Tự Hướng.
*Giáo trình của môn cầu đường của bạn Connhangheo.

Tưởng có tài liệu như vậy là ngon ăn rồi***&&%nha, ai dè! Ngồi nuốt ra nuốt vô ngót nghét đã gần tháng , đọc muốn bầm con mắt :black_eye: mà chưa thấy cải thiện được kiến thức zìa Macro và VBA j hết.

Em cũng còn thấy ức lên GPE tìm tiếp-0-/..
Đọc được bài giới thiệu của thầy Anhtuan1066 giới thiệu sách của thầy Ông Văn Thông viết dễ hiểu (mặc dù là viết về Macro trên Excel 1997), hăng hái chạy ra nhà sách bự tổ chảng "Nguyễn Văn Cừ" trên Xô Viết Nghệ Tĩnh. Nhưng chời ơi, không thấy thầy Ông Văn Thông để lại cuốn sách Excel nào ở nhà sách này hết, mon men mấy hiệu sách khác kể cả nhà sách cũ ở Nguyễn Thị Minh Khai cũng không thấy đâu. Haizzz , chẳng lẻ chời phụ lòng người "dzốt" zậy sao+-+-+-+ chời!!! Chắc kì này sống chết với VBA luôn quá!:cc_hang:
Xin ACE , pakon kô pác zũ lòng giúp đỡ giùm e!
 
Lần chỉnh sửa cuối:
Gần 1 tháng nay e sưu tập và đọc 1 số bài viết về Macro và VBA
*Chập chững VBA của thầy SQ_DA
*Kiến thức cơ bản về Macro trong Excel 2003 của thầy Phan Tự Hướng.
*Giáo trình của môn cầu đường của bạn Connhangheo.

Tưởng có tài liệu như vậy là ngon ăn rồi***&&%, ai dè! Ngồi nuốt ra nuốt vô ngót nghét đã gần tháng , đọc muốn bầm con mắt :black_eye: mà chưa thấy cải thiện được kiến thức zìa Macro và VBA j hết.

Em cũng còn thấy ức lên GPE tìm tiếp-0-/..
Đọc được bài giới thiệu của thầy Anhtuan1066 giới thiệu sách của thầy Ông Văn Thông viết dễ hiểu (mặc dù là viết về Macro trên Excel 1997), hăng hái chạy ra nhà sách bự tổ chảng "Nguyễn Văn Cừ" trên Xô Viết Nghệ Tĩnh. Nhưng chời ơi, không thấy thầy Ông Văn Thông để lại cuốn sách Excel nào ở nhà sách này hết, mon men mấy hiệu sách khác kể cả nhà sách cũ ở Nguyễn Thị Minh Khai cũng không thấy đâu. Haizzz , chẳng lẻ chời phụ lòng người "dzốt" zậy sao+-+-+-+ chời!!! Chắc kì này sống chết với VBA luôn quá!:cc_hang:
Xin ACE , pakon kô pác zũ lòng giúp đỡ giùm e!
Bình tỉnh!
Hãy bắt đầu bằng bài học đơn giản nhất, đó là record macro
Tự bạn hãy nghĩ ra 1 tình huống nào đó rồi làm thử ---> Nếu làm bằng tay được thì ta hoàn toàn có thể viết code bằng phương pháp record macro
Lấy ví dụ bài toán thế này:
- Gõ gì đó vào cell A1 thì B1 sẽ hiện ra giá trị đúng bằng A1
- Thay đổi dử liệu tại A1 thì B1 sẽ cộng dồn giá trị mới của A1 vào chính nó
Bài toán này bạn sẽ record macro thế này:
- Gõ số gì đó vào A1 trước
- Bật record macro lên
- Chọn cell A1, bấm Ctrl + C để copy
- Click phải vào cell B1, chọn Paste Special\Add
- Bấm nút Esc rồi tắt record macro
- Bấm Alt + F11 xem code và... cố hiểu
- Cố gắng bằng mọi cách rút gọn lại code trong khả năng của bạn ---> Bạn càng rút gọn được code mà nó vẫn chạy tốt là bạn đã thu thập được thêm 1 mớ kiến thức rồi đấy
-----------------------------
Ví dụ bài toán vừa nói ở trên, ta sẽ thu được thế này:
PHP:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 29/12/2009 by NDU
'

'
    Range("A1").Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
End Sub
Và nếu là tôi thì tôi sẽ rút gọn được thành:
PHP:
Sub Macro1()
  Range("A1").Copy
  Range("B1").PasteSpecial , 2
  Application.CutCopyMode = False
End Sub
Sau này giỏi hơn. bạn sẽ viết khác:
PHP:
Sub Macro1()
  Range("B1") = Range("B1") + Range("A1")
End Sub
-----------------------------
Ngày xưa tôi cũng đã học bằng kiểu này đấy thôi! Quan trọng là bạn có thể nghĩ ra được tình huống và cố gắng giải quyết bằng phương pháp VBA do bạn tự viết lấy ---> Thế mới mau "lên cơ" bạn à!
Nên nhớ: Sách chỉ đóng vai trò hổ trợ 1 phần ---> Bản thân bạn tự vận động mới là yếu tố quyết định
 
Upvote 0
Thưa thầy Ndu,

Em cũng có đọc qua phần record macro, nhưng không thấy là mình có thể lược bỏ 1 số cụm từ ko cần thiết. Em chỉ có thể dám lược bỏ những dòng sau dấu nháy ('). Và em chỉ có thể rút gọn tối đa là như thế này:
Sub Macro1()
' Macro1 Macro
Range("A1").Select
Selection.Copy
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub
Còn Thầy thì rút gọn như thế này:
Sub Macro1()
Range("A1").Copy
Range
("B1").PasteSpecial , 2
Application
.CutCopyMode = False
End Sub
Thật quá gọn gàng. Vậy làm sao e biết có thể bỏ thêm đc những cụm từ không cần thiết trong VBA, thưa Thầy?
Để tự viết những bài đơn giản về macro thì e phải đặt ra cho mình những mục tiêu gì trong tương lai?
Xa hơn nữa e cũng muốn đc viết macro trao đổi với chia sẽ cùng ACE trên diễn đàn thì e thực hành như thế nào, thưa Thầy?

Nhờ thầy cho e lời khuyên. Nếu có,xin thầy cho em bài tập nào tương đối cho đứa "yếu cơ" như e bơi trong đó đc không Thầy!!?
 
Upvote 0
Để tôi giải thích cho bạn chỗ nào có thể rút gọn. Rút gọn ở đây là xóa bớt những phần thừa. Nếu bạn chưa rành thì cứ xóa thôi đừng nên sửa.
PHP:
Sub Macro1()
 ' Macro1 Macro
     Range("A1").Select
     Selection.Copy
     Range("B1").Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
         False, Transpose:=False
     Application.CutCopyMode = False
 End Sub
PHP:
' Macro1 Macro
Đầu tiên, những dòng sau dấu nháy đơn là phần chú thích, bỏ hết phần này cũng không sao.
PHP:
Range("A1").Select
      Selection.Copy
Bạn nói bạn đọc qua một số tài liệu, chắc cũng biết Selection chính là vùng chọn. Ở đoạn code này, bạn chọn ô A1 (Range("A1").Select), sau đó copy vùng chọn (Selection.Copy). Như vậy có phải bạn copy ô A1 không? Vậy thì có thể rút gọn lại, sử dụng phương thức Copy trực tiếp vào Range("A1") luôn. Rút gọn lại thành Range("A1").Copy
PHP:
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
          False, Transpose:=False
Ở đoạn code này, Select - Selection cũng có thể bỏ tương tự như trên. Còn các tùy chọn của PasteSpecial, khi bạn ghi Macro bạn chỉ chọn Add ở phần Operation, những phần khác giữ nguyên theo mặt định ban đầu. Vì vậy, những phần nào bạn thay đổi thì bạn giữ lại, những phần khác bạn không đụng đến thì có thể xóa đi (Thông thường là thế)
Đoạn code trên có thể rút gọn lại thành Range("B1").PasteSpecial Operation:=xlAdd

Ngoài ra, bạn có thể tìm hiểu công dụng của từng dòng code (nguồn trên mạng không thiếu gì). Khi biết nó dùng để làm gì bạn có thể xem xét có thể bỏ hay không.
 
Upvote 0
Cám ơn Thầy Ndu và bạn huuthang_bd rất nhiều.

Vậy xin Thầy và bạn nếu có bài tập viết về macro (càng đơn giản càng tuyệt) cho e/mình xin.
 
Upvote 0
Cám ơn Thầy Ndu và bạn huuthang_bd rất nhiều.

Vậy xin Thầy và bạn nếu có bài tập viết về macro (càng đơn giản càng tuyệt) cho e/mình xin.
Bạn thử một số bài tập thế này nhé ( đơn giản chút thui)
bài 1: Cho vùng dữ liệu ( A1: A10) và vùng dữ liệu (B1:B10)
câu hỏi 1: hãy tính tổng của tích (a1*b1+......+a10*b10) ' cái này giống SUMPRODUCT
câu hỏi 2: từ vùng dữ liệu a1:b10 ở trên hãy chuyển chúng từ cột thành hàng 'cái này giống TRANSPOSE
Bài 2 : cho vùng dữ liệu ở sheet1 là A1: c100 bây giờ hãy copy sang sheet2 ở một vùng nào đó bạn muốn ( giả sử bắt đầu từ cell b1)
bạn thử xem: hihihi hãy cứ thử bắt đầu từ record macro như Thầy Ndu dạy nhé
 
Upvote 0
Gần 1 tháng nay e sưu tập và đọc 1 số bài viết về Macro và VBA
*Chập chững VBA của thầy SQ_DA
*Kiến thức cơ bản về Macro trong Excel 2003 của thầy Phan Tự Hướng.
*Giáo trình của môn cầu đường của bạn Connhangheo.

Tưởng có tài liệu như vậy là ngon ăn rồi***&&%nha, ai dè! Ngồi nuốt ra nuốt vô ngót nghét đã gần tháng , đọc muốn bầm con mắt :black_eye: mà chưa thấy cải thiện được kiến thức zìa Macro và VBA j hết.

Em cũng còn thấy ức lên GPE tìm tiếp-0-/..
Đọc được bài giới thiệu của thầy Anhtuan1066 giới thiệu sách của thầy Ông Văn Thông viết dễ hiểu (mặc dù là viết về Macro trên Excel 1997), hăng hái chạy ra nhà sách bự tổ chảng "Nguyễn Văn Cừ" trên Xô Viết Nghệ Tĩnh. Nhưng chời ơi, không thấy thầy Ông Văn Thông để lại cuốn sách Excel nào ở nhà sách này hết, mon men mấy hiệu sách khác kể cả nhà sách cũ ở Nguyễn Thị Minh Khai cũng không thấy đâu. Haizzz , chẳng lẻ chời phụ lòng người "dzốt" zậy sao+-+-+-+ chời!!! Chắc kì này sống chết với VBA luôn quá!:cc_hang:
Xin ACE , pakon kô pác zũ lòng giúp đỡ giùm e!
Bạn ơi tui cũng rất muốn tìm hiểu về hàm VBA và Macro trong Excel mà khó quá. Những sách bạn bảo đã sưu tầm ở trên mua ở hiệu sách là có à. Bạn có tài liệu nào về vấn đề này thì chia sẻ cho mình được không
 
Upvote 0
Bạn ơi tui cũng rất muốn tìm hiểu về hàm VBA và Macro trong Excel mà khó quá. Những sách bạn bảo đã sưu tầm ở trên mua ở hiệu sách là có à. Bạn có tài liệu nào về vấn đề này thì chia sẻ cho mình được không
bạn có thể vào đây tải sách và các ví dụ về làm nè;
http://www.4shared.com/file/153688228/a6621e47/G_i_b_n.html
http://www.giaiphapexcel.com/forum/showthread.php?t=27420
 
Lần chỉnh sửa cuối:
Upvote 0
Link sách VBA của bạn khoavu87 có vi-gút thì phải.
Kaspersky của mình báo có Trojan ko cho down nữa
Bạn có link nào khác không?
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn Thầy Ndu và bạn huuthang_bd rất nhiều.

Vậy xin Thầy và bạn nếu có bài tập viết về macro (càng đơn giản càng tuyệt) cho e/mình xin.
Cái đơn giản nhất chính là cái bạn thường làm hằng ngày cho công việc ấy
Chẳng hạn bạn thường xuyên phải AutoFilter hoặc Advanced Filter để trích rút dử liệu --> Hãy record macro quá trình này dùng làm công cụ phục vụ cho riêng bạn
vân vân...
Ngoài ra nên tham gia hỏi đáp thường xuyên trên diển đàn... hãy down file của người nhờ giúp về tham khảo và tìm hướng giải quyết ---> Đừng bao giờ ngại rằng "cơ" của mình quá yếu (e rằng người ta sẽ cười), vì biết đâu đấy, suy nghĩ đơn giản của bạn có khi lại cho giải pháp tối ưu nhất cũng không chừng
Vài gợi ý sơ bộ... nói cho cùng thì bạn vẫn phải không ngừng cố gắng thôi, chẳng ai có thể giúp được bạn về vấn đề tiếp thu kiến thức đâu...
Ngoài ra nếu bạn thật sự yêu thích Excel và VBA thì tin chắc chẳng có điều gì có thể ngăn cản bước tiến của bạn
Cố gắng lên bạn à! ---> GPE luôn là bạn đồng hành của bạn đấy!
 
Upvote 0
Link sách VBA của bạn khoavu87 có vi-gút thì phải.
Kaspersky của mình báo có Trojan ko cho down nữa
Bạn có link nào khác không?
Mình vừa thử tải lại rùi vẫn đc bạn à. máy mình ko cài Kaspersky mà cài antivirut, nhưng ko có cảnh báo. Cái nữa là ngay chính link tải về đó cũng đc kiểm tra bởi Kaspersky mà. Hay bạn thử tắt Kaspersky đi xem sao?
 
Upvote 0
Cái đơn giản nhất chính là cái bạn thường làm hằng ngày cho công việc ấy
Chẳng hạn bạn thường xuyên phải AutoFilter hoặc Advanced Filter để trích rút dử liệu --> Hãy record macro quá trình này dùng làm công cụ phục vụ cho riêng bạn
vân vân...
Ngoài ra nên tham gia hỏi đáp thường xuyên trên diển đàn... hãy down file của người nhờ giúp về tham khảo và tìm hướng giải quyết ---> Đừng bao giờ ngại rằng "cơ" của mình quá yếu (e rằng người ta sẽ cười), vì biết đâu đấy, suy nghĩ đơn giản của bạn có khi lại cho giải pháp tối ưu nhất cũng không chừng
Vài gợi ý sơ bộ... nói cho cùng thì bạn vẫn phải không ngừng cố gắng thôi, chẳng ai có thể giúp được bạn về vấn đề tiếp thu kiến thức đâu...
Ngoài ra nếu bạn thật sự yêu thích Excel và VBA thì tin chắc chẳng có điều gì có thể ngăn cản bước tiến của bạn
Cố gắng lên bạn à! ---> GPE luôn là bạn đồng hành của bạn đấy!

Một cách khác mà mình vẫn hay làm là tìm đọc những bài viết của cao thủ
mà bài mình hay tìm đọc là bài viết của bác NDU
Ke ke
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom