Tỉnh tổng 1 cột bằng code (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

haikimcuong

Thành viên hoạt động
Tham gia
6/7/10
Bài viết
169
Được thích
36
Xin các thầy cách làm code tính tổng 1 cột sang 1 ô khác bằng VBA với ạ?
Ở ví dụ em tính tổng 65530 dòng cột A sang tổng ở ô C3 với điều kiện có bất kỳ thay đổi gì ở cột A thì lập tức bên C3 update luôn ạ>
Thanks các thầy
 

File đính kèm

Xin các thầy cách làm code tính tổng 1 cột sang 1 ô khác bằng VBA với ạ?
Ở ví dụ em tính tổng 65530 dòng cột A sang tổng ở ô C3 với điều kiện có bất kỳ thay đổi gì ở cột A thì lập tức bên C3 update luôn ạ>
Thanks các thầy
Thử cách bình dân này xem sao. Nếu có ô trống ở giữa thì cộng thiếu ráng chịu
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim FirstRow, LastRow
   FirstRow = [A65536].End(3).End(3).Row
   LastRow = [A65536].End(3).Row
[C3].Formula = "=Sum(A" & FirstRow & ":A" & LastRow & ")"
Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin các thầy cách làm code tính tổng 1 cột sang 1 ô khác bằng VBA với ạ?
Ở ví dụ em tính tổng 65530 dòng cột A sang tổng ở ô C3 với điều kiện có bất kỳ thay đổi gì ở cột A thì lập tức bên C3 update luôn ạ>
Thanks các thầy
Cho hỏi mục đích của bạn là gì? cái vụ tính tổng này cần gì phải VBA nhỉ ( hoặc nếu cần chỉ việc record Macro là ok ),<--------- hay bạn có 1 điều gì "huyền bí" ,có thể chia sẻ cho mọi người được không ?
 
Upvote 0
Thử cách bình dân này xem sao. Nếu có ô trống ở giữa thì cộng thiếu ráng chịu
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim FirstRow, LastRow
   FirstRow = [A65536].End(3).End(3).Row
   LastRow = [A65536].End(3).Row
[C3].Formula = "=Sum(A" & FirstRow & ":A" & LastRow & ")"
Application.EnableEvents = True
End Sub
Thanks bác ạ, em nghiên cứu tiếp chắc là ổn ạ
 
Upvote 0
Cho hỏi mục đích của bạn là gì? cái vụ tính tổng này cần gì phải VBA nhỉ ( hoặc nếu cần chỉ việc record Macro là ok ),<--------- hay bạn có 1 điều gì "huyền bí" ,có thể chia sẻ cho mọi người được không ?
Không bạn ơi mình đang học code nhưng mình lại hay tìm những cái gì mình nghĩ mà k làm được để học thôi bạn ạ chứ không có gì thực sự đọc sách chỗ hiểu chỗ không nên nhờ các thầy chỉ giúp bạn ạ.
 
Upvote 0
1 điều không hợp lý là đã Code thường trực thì sao còn để công thức. Code Quang Hải nên chỉnh 1 chút

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim FirstRow, LastRow
   FirstRow = [A65536].End(3).End(3).Row
   LastRow = [A65536].End(3).Row
[C3] = Evaluate("=Sum(A" & FirstRow & ":A" & LastRow & ")")
Application.EnableEvents = True
End Sub
 
Upvote 0
Không bạn ơi mình đang học code nhưng mình lại hay tìm những cái gì mình nghĩ mà k làm được để học thôi bạn ạ chứ không có gì thực sự đọc sách chỗ hiểu chỗ không nên nhờ các thầy chỉ giúp bạn ạ.

Đêm đã khuya," hạn chế phát ra tiếng động từ bàn phím" --> nên mình cũng viết thử 1 đoạn code ngắn gọn bạn tham khảo nhé:
[GPECODE=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A:A], Target) Is Nothing Then
[C1] = WorksheetFunction.Sum(Range("A:A").SpecialCells(2))
End If
End Sub
[/GPECODE]
ps: Hà NỘi nóng quá không ngủ được, !!!!!!!!!!!!!!!!!
 
Upvote 0
Xin các thầy cách làm code tính tổng 1 cột sang 1 ô khác bằng VBA với ạ?
Ở ví dụ em tính tổng 65530 dòng cột A sang tổng ở ô C3 với điều kiện có bất kỳ thay đổi gì ở cột A thì lập tức bên C3 update luôn ạ>
Thanks các thầy

- Thế sao bạn không dùng hàm SUM của Excel (=SUM(A:A) chẳng hạn)
- Bạn nghĩ rằng dùng VBA nó nhanh hơn hàm SUM của anh Bill à?
- Hay bạn nghĩ phải dùng VBA thì mới chứng tỏ mình pro hơn "chúng nó"
--------------------
Tôi thấy mấy cái code ở trên, dù đã là VBA rồi nhưng cũng dùng SUM của bảng tính đấy thôi ---> Thế thì VBA làm đếch gì?
 
Upvote 0
- Thế sao bạn không dùng hàm SUM của Excel (=SUM(A:A) chẳng hạn)
- Bạn nghĩ rằng dùng VBA nó nhanh hơn hàm SUM của anh Bill à?
- Hay bạn nghĩ phải dùng VBA thì mới chứng tỏ mình pro hơn "chúng nó"
--------------------
Tôi thấy mấy cái code ở trên, dù đã là VBA rồi nhưng cũng dùng SUM của bảng tính đấy thôi ---> Thế thì VBA làm đếch gì?

Thì em cũng đã hỏi :
Cho hỏi mục đích của bạn là gì? cái vụ tính tổng này cần gì phải VBA nhỉ ( hoặc nếu cần chỉ việc record Macro là ok ),<--------- hay bạn có 1 điều gì "huyền bí" ,có thể chia sẻ cho mọi người được không ?

Mà vẫn chưa giải thích được <----------- Hay là ý tưởng lớn không gặp nhau !

:love:
 
Upvote 0
Không bạn ơi mình đang học code nhưng mình lại hay tìm những cái gì mình nghĩ mà k làm được để học thôi bạn ạ chứ không có gì thực sự đọc sách chỗ hiểu chỗ không nên nhờ các thầy chỉ giúp bạn ạ.
Chỉ là phép cộng thôi thì đơn giản mà. Nếu là muốn nghiên cứu thì mời xem tiếp code dùng vòng lặp. Hy vọng bạn biết áp dụng vào thực tế.

PHP:
Sub cong()
Dim nguon(), i, kq
nguon = Sheet1.[A1:A65536].Value
For i = 1 To UBound(nguon)
   If nguon(i, 1) > 0 Then kq = kq + nguon(i, 1)
Next
Sheet1.[C3] = kq
End Sub
 
Upvote 0
Chỉ là phép cộng thôi thì đơn giản mà. Nếu là muốn nghiên cứu thì mời xem tiếp code dùng vòng lặp. Hy vọng bạn biết áp dụng vào thực tế.

PHP:
Sub cong()
Dim nguon(), i, kq
nguon = Sheet1.[A1:A65536].Value
For i = 1 To UBound(nguon)
   If nguon(i, 1) > 0 Then kq = kq + nguon(i, 1)
Next
Sheet1.[C3] = kq
End Sub

Đã code thì làm ngon lành luôn
Ví dụ trong vùng dữ liệu, có cell A10 (chẳng hạn) có giá trị = "NDU" thì code nó tèo à?
If nguon(i, 1) > 0 Then ---> Xem chừng hơi chủ quan
----------------------
Chú Hải này cứ thích làm nữa chừng (có lúc "người ta" không thích cái kiểu nữa chừng ấy đâu nha)
 
Upvote 0
Không bạn ơi mình đang học code nhưng mình lại hay tìm những cái gì mình nghĩ mà k làm được để học thôi bạn ạ chứ không có gì thực sự đọc sách chỗ hiểu chỗ không nên nhờ các thầy chỉ giúp bạn ạ.

Nếu code cái này mà bạn đã không nghĩ ra thì có lẽ bạn đi quá nhanh. Cần đi lại từ căn bản hơn, và người đang học thì nên tự thử đi thử lại (chế biến nhiều kiểu) những cái mình không hiểu trước khi hỏi.
 
Upvote 0
- Thế sao bạn không dùng hàm SUM của Excel (=SUM(A:A) chẳng hạn)
- Bạn nghĩ rằng dùng VBA nó nhanh hơn hàm SUM của anh Bill à?
- Hay bạn nghĩ phải dùng VBA thì mới chứng tỏ mình pro hơn "chúng nó"
--------------------
Tôi thấy mấy cái code ở trên, dù đã là VBA rồi nhưng cũng dùng SUM của bảng tính đấy thôi ---> Thế thì VBA làm đếch gì?
Gửi anh NDU a noi rất đúng và chuẩn nhưng khi anh đã thong thạo về VBA còn với tôi mới chỉ làm quen 1 tháng và chẳng có ai dạy đôi khi 1 điều mình hỏi có thể rất vô tư với mình nhưng lại rất khó chịu đối với người khác, có 1 câu chuyện xảy ra ở cơ quan tôi thế này: 1 anh rất giỏi về nghiệp vụ của mình(anh ấy làm PR) hễ ai nói đến việc của anh ấy là kiểu gì cũng bị giáo huấn, nhưng có 1 điều anh ấy rất dở đó là với gia đình thì anh ấy lại chỉ là gã học việc như tôi mà thôi, với tối có nhiều thứ khác cần thể hiện hơn mà đó chỉ có thể là đời thực chứ k cần thế giới ảo như thế này--=0. trả lời cho câu hỏi thứ 3 của anh xin thưa với anh Pro cũng hiểu theo nhiều nghĩa anh ạ tiếng anh nghĩa bóng thì e rang còn nhiều người phải học nữa anh ạ, còn chúng nó ở đây anh ám chỉ gì em chẳng "thèm" quan tâm: "Người biết luôn muôn mình là kẻ dại, còn người dại thì luôn muốn mình là kẻ giỏi" mà cũng đúng that giờ internet bùng nổ có ai cầm mấy quyển truyện rách để đọc đâu nói đến đây em lại nhớ đến chuyện đẽo cầy anh ạ.
 
Upvote 0
Gửi anh NDU a noi rất đúng và chuẩn nhưng khi anh đã thong thạo về VBA còn với tôi mới chỉ làm quen 1 tháng và chẳng có ai dạy đôi khi 1 điều mình hỏi có thể rất vô tư với mình nhưng lại rất khó chịu đối với người khác, có 1 câu chuyện xảy ra ở cơ quan tôi thế này: 1 anh rất giỏi về nghiệp vụ của mình(anh ấy làm PR) hễ ai nói đến việc của anh ấy là kiểu gì cũng bị giáo huấn, nhưng có 1 điều anh ấy rất dở đó là với gia đình thì anh ấy lại chỉ là gã học việc như tôi mà thôi, với tối có nhiều thứ khác cần thể hiện hơn mà đó chỉ có thể là đời thực chứ k cần thế giới ảo như thế này--=0. trả lời cho câu hỏi thứ 3 của anh xin thưa với anh Pro cũng hiểu theo nhiều nghĩa anh ạ tiếng anh nghĩa bóng thì e rang còn nhiều người phải học nữa anh ạ, còn chúng nó ở đây anh ám chỉ gì em chẳng "thèm" quan tâm: "Người biết luôn muôn mình là kẻ dại, còn người dại thì luôn muốn mình là kẻ giỏi" mà cũng đúng that giờ internet bùng nổ có ai cầm mấy quyển truyện rách để đọc đâu nói đến đây em lại nhớ đến chuyện đẽo cầy anh ạ.

Ấy ấy... đừng có nóng
Tôi muốn phân tích cho bạn thấy CÁI NÀO LÀ CẦN, CÁI NÀO CÓ LÀM CŨNG VÔ ÍCH
Dám cá với bạn, trình độ như chúng ta chẳng tài nào có thể viết ra được hàm SUM hoạt động ngon hơn hàm SUM mà bác Bill đã viết đâu (thế thì mất công làm gì)
Vậy nên: Mọi thứ nên đơn giản hóa nếu có thể. Cái gì có sẵn hãy cứ xài ---> Ta chỉ viết code VBA trong trường hợp ta không còn tìm ra được cách khác, hoặc giả ta e ngại bảng tính nhiều công thức quá sẽ làm file bị chậm.. vân vân...
Ý tôi là vậy đấy! Còn nếu vì cách hành văn (cách viết của tôi là thế) khiến bạn hiểu lầm thì xin lỗi bạn vậy
Chúng ta trao đổi kiến thức để giúp nhau cùng tiến bộ. Chắc bạn cũng không muốn chuyện nhỏ phải cãi vã chứ?
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Upvote 0
Ấy ấy... đừng có nóng
Tôi muốn phân tích cho bạn thấy CÁI NÀO LÀ CẦN, CÁI NÀO CÓ LÀM CŨNG VÔ ÍCH
Dám cá với bạn, trình độ như chúng ta chẳng tài nào có thể viết ra được hàm SUM hoạt động ngon hơn hàm SUM mà bác Bill đã viết đâu (thế thì mất công làm gì)
Vậy nên: Mọi thứ nên đơn giản hóa nếu có thể. Cái gì có sẵn hãy cứ xài ---> Ta chỉ viết code VBA trong trường hợp ta không còn tìm ra được cách khác, hoặc giả ta e ngại bảng tính nhiều công thức quá sẽ làm file bị chậm.. vân vân...
Ý tôi là vậy đấy! Còn nếu vì cách hành văn (cách viết của tôi là thế) khiến bạn hiểu lầm thì xin lỗi bạn vậy
Chúng ta trao đổi kiến thức để giúp nhau cùng tiến bộ. Chắc bạn cũng không muốn chuyện nhỏ phải cãi vã chứ?
Ẹc... Ẹc...
Tôi không có ý đó nhưng học mà k có thầy cung giống như hỏi đường khi đi du lịch mà k biết tiếng bản địa anh ạ, còn biết tiếng rồi thì đon giản lắm a ạ. Tôi cũng đã tâm sự nhiều với Bạn Linh, Em Duy, Anh Hải cả thầy Hướng và THầy Tuân khổ nhất là đi hỏi mọi người qua nhiêu nhưng k biết thì phải hỏi a ạ
 
Upvote 0
Tôi không có ý đó nhưng học mà k có thầy cung giống như hỏi đường khi đi du lịch mà k biết tiếng bản địa anh ạ, còn biết tiếng rồi thì đon giản lắm a ạ. Tôi cũng đã tâm sự nhiều với Bạn Linh, Em Duy, Anh Hải cả thầy Hướng và THầy Tuân khổ nhất là đi hỏi mọi người qua nhiêu nhưng k biết thì phải hỏi a ạ

Thì bạn cứ học ở đây là được rồi
Cố gắng lắng nghe những gì người ta góp ý
Quan trọng là: ĐÃ HỌC THÌ ĐỪNG CÓ NÓNG.
Nói thật với bạn rằng: Trên GPE này, chẳng ai chế giễu ai đâu (chỉ là đôi khi ta chưa hiểu ý nhau thôi)... Một điều chắc chắn rằng: Mọi người đều rất sẵn lòng giúp bạn hay bất kỳ ai nếu họ có nhu cầu
Vậy đi nha! Cố lên
 
Upvote 0
Ndu nói đúng đấy bạn ơi, mình đặt hàm sum vào ô nhanh hơn nhờ một người ngồi trông cửa nếu thấy thay đổi gì thì nhanh chóng xem hàm sum bằng bao nhiêu rồi điền vào đấy. Biết bạn đang tìm tòi nên bạn hỏi thì mình vẫn có ý kiến (Trừ phi trường hợp đặc biệt như chép dữ liệu có công thức mang theo dễ dẫn đến sai thông số thì mới cần đến việc này)
 
Upvote 0
Ndu nói đúng đấy bạn ơi, mình đặt hàm sum vào ô nhanh hơn nhờ một người ngồi trông cửa nếu thấy thay đổi gì thì nhanh chóng xem hàm sum bằng bao nhiêu rồi điền vào đấy. Biết bạn đang tìm tòi nên bạn hỏi thì mình vẫn có ý kiến (Trừ phi trường hợp đặc biệt như chép dữ liệu có công thức mang theo dễ dẫn đến sai thông số thì mới cần đến việc này)

Em nghĩ bạn ấy mới bước vào lĩnh vực lập trình, thấy cái gì cũng muốn học để thử ---> Đôi khi choáng ngợp giữa "rừng" kiến thức và cuối cùng không biết nên học cái gì và hỏi cái gì
Giống như bạn VetMini đã nói ở trên
Nếu code cái này mà bạn đã không nghĩ ra thì có lẽ bạn đi quá nhanh. Cần đi lại từ căn bản hơn, .
Tức là bạn ấy đang hỏi những cái chưa cần đến so với trình độ của mình (giống như hỏi việc tạo cái đồng hồ trên bảng tính, chả biết để làm gì)
Điều quan trọng là xem công việc của mình đang làm nó cần cái gì? (em nghĩ xử lý dữ liệu ai cũng cần) và hỏi để phục vụ tốt cho công việc mới là cái đáng quan tâm nhất (mọi thứ màu mè gì đó nên tạm gát lại)
 
Upvote 0

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

Back
Top Bottom