haikimcuong
Thành viên hoạt động



- Tham gia
- 6/7/10
- Bài viết
- 169
- Được thích
- 36
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ịuXin 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
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
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 ?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
Thanks bác ạ, em nghiên cứu tiếp chắc là ổn ạ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
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 ạ.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 ?
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
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 ạ.
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ì?
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 ?
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ế.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 ạ.
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
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
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 ạ.
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- 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. 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 ạ.
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 ạẤ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 ạ
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)
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ì)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, .