Mình muốn hiểu VBA thực sự

Liên hệ QC

ThichExcel

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
11/10/06
Bài viết
68
Được thích
21
Các bạn ơi !
Mình có biết và hiểu về VBA nhưng theo kiểu "học vẹt". Mới đầu thích tình cờ biết về marco và sau đó mình record những marco mẫu rồi tìm hiểu, nhiều thành quen và hiểu "na ná". Sau đó mình tìm mua sách về VBA rồi đọc và cũng thu lươnmj nhiều kiến thức. Nhưng từ khi biết diễn đàn, mình nhận ra rằng mình "Không hiểu bản chất lập trình VBA EXCEL". Sự tiếp nhận kiến thức về VAB EXCEL của mình là 1 "con vẹt".
Ví dụ về "Sự không hiểu của mình".Giả sử có 1 Marco như sau :
----------------------------------
Sub DeleteRowsThatLookEmptyinColA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual 'pre XL97 xlManual
Dim rng As Range, ix As Long
Set rng = Intersect(Range("A:A"), ActiveSheet.UsedRange)
For ix = rng.Count To 1 Step -1
If Trim(Replace(rng.Item(ix).Text, _
Chr(160), Chr(32))) = "" Then
rng.Item(ix).EntireRow.Delete
End If
Next
done:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
-------------------------------------
Mình không biết các ngôn từ như "ScreenUpdating" hay "Calculation" hay
"xlCalculationManual 'pre XL97 xlManual" vv..vv..vv. là như thế nào.

Mình hi vọng hiểu được cái sự "Không hiểu" của mình qua ví dụ trên

Bây giờ mình muốn "nắm bắt" được nó thì mình phải tìm hiểu ra sao, các bạn có tài liệu nào thì giới thiệu giúp mình để mình có thể dần dần làm chủ và trực tiếp "Viết các marco" chứ không theo kiểu Record như trước.
 
Với những gì bạn trình bày tôi tin là bạn sẽ tiếp cận và học được lập trình VBA rất mau (tuy hơi không bài bản)
Bây giờ tôi và mọi người sẽ lần lượt giúp từng câu hỏi của bác nhé:

1. "ScreenUpdating" là thuộc tính cập nhật thay đổi trên màn hình. Khi thuộc tính này ở giá trị True (mặc định) thì mỗi sự thay đổi trong code liên quan đến việc phải có một sự thay đổi việc hiển thị trên màn hình. Ví dụ như bạn dùng câu
Range("A1").select thì con trỏ sẽ nhảy về ô A1 (hiển thị trên màn hình). Nếu ScreenUpdating = false thì ô hiện hành mới (activecell) vẫn là ô A1 nhưng bác sẽ không thấy sự đổi trên màn hình. (màn hình không cập nhật)

Việc tắt chế độ cập nhật màn hình nhằm mục đích làm tăng tốc chương trình. Và sau khi chương trình chạy xong thì update lại thông tin về màn hình mới nhất để trả lại chế độ bình thường.

2."Calculation" là chế độ tính toán. Khi thế độ này được bật (mặc định) thì cứ mỗi lần một ô bị thay đổi thì toàn bộ bảng tính sẽ được tính lại. Điều này làm cho bảng tính có thể bị chạy rất chậm nếu bạn có file có nhiều công thức.
Do vậy tắt chế độ này đi để tăng tốc chương trình.
Thuộc tính Calculation có 3 chế độ: xlCalculationAutomatic (tính tự động); xlCalculationManual (tính bằng tay, chỉ tính những ô theo yêu cầu); xlCalculationSemiautomatic (chế độ bán tự động).

pre XL97 xlManual: có nghĩa là với Excel trước Excel 97 thì dùng hằng số xlManual.
 
Nếu bạn muốn tìm hiểu VBA thật sự thì chỉ có cách là đọc sách thôi. Có điều gì thắc mắc thì lên diễn đàn hỏi. Tôi đang dịch 1 cuốn VBA trong Excel 2003 (kiến thức cơ bản thôi). Hy vọng khoảng 2 tháng nữa sẽ xong.
 
Phím F1 & trên mạng!

Sau đó mình record những marco mẫu rồi tìm hiểu, nhiều thành quen và hiểu "na ná". Sau đó mình tìm mua sách về VBA rồi đọc và cũng thu ---
Có nghĩa là bạn chỉ còn chưa tận dụng phím {F1} trong của số VBA nữa! & còn nữa là trên mạng í: Các từ khóa của chúng muốn hiểu thì đem lên Google hay diễn đàn nào đó của VBA hỏi những người biết trước sẽ chỉ giúp cho!
 
Phan Tu Huong ơi! Mình rất muốn tìm hiểu về VBA. Khi nào dịch xong cuốn sách đó, bạn share lên mạng để mình cùng mọi người cùng tìm hiểu nhé.
Chân thành cảm ơn bạn rất nhiều.
 
Nếu bạn muốn tìm hiểu VBA thật sự thì chỉ có cách là đọc sách thôi. Có điều gì thắc mắc thì lên diễn đàn hỏi. Tôi đang dịch 1 cuốn VBA trong Excel 2003 (kiến thức cơ bản thôi). Hy vọng khoảng 2 tháng nữa sẽ xong.
anh có chia sẻ cuốn sách đó được không ạ?
 
Trời đất, trong CNTT, 2-3 năm là đã bắt đầu lỗi thời. Cái này đã trên 10 năm, có nhiều đối tượng đã thay đổi, và nhiều kỹ thuật đã cải tiến.

Dạ nhưng anh Phantuhuong vẫn còn đang tiếp tục làm việc với VBA ạ. Biết đâu anh ấy đang dịch 1 cuốn VBA trong Excel 2018 chăng? Nên em xin anh ấy chia sẻ 1 cuốn nào đó là em vui rồi. /-*+/
 
Trời đất, trong CNTT, 2-3 năm là đã bắt đầu lỗi thời. Cái này đã trên 10 năm, có nhiều đối tượng đã thay đổi, và nhiều kỹ thuật đã cải tiến.
Nhưng vẫn còn nhiều thứ dùng tốt, "60 năm vẫn chạy tốt" thì 10 năm ăn thua gì
 
Dạ nhưng anh Phantuhuong vẫn còn đang tiếp tục làm việc với VBA ạ. Biết đâu anh ấy đang dịch 1 cuốn VBA trong Excel 2018 chăng? Nên em xin anh ấy chia sẻ 1 cuốn nào đó là em vui rồi. /-*+/
Cái ngữ cảnh nó có con số 2003 - hai ngàn lẻ ba - tổ bố. 'Em' vui chứ 'anh' thì hiểu chết liền.
 
Web KT
Back
Top Bottom