Hàm tính tổng một ô trong tất cả các sheets (1 người xem)

  • Thread starter Thread starter kelvin
  • Ngày gửi Ngày gửi
Liên hệ QC

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

kelvin

Thành viên thường trực
Tham gia
24/6/06
Bài viết
202
Được thích
184
Nghề nghiệp
Tư vấn xây dựng, kinh doanh in ấn
Có bạn hỏi mình:"minh muon viet mot ham de tinh tong mot o trong tat ca cac sheet .thi du nhu o A3 chang hen minh viet nhu sau:
PHP:
Function sumall(cel As Range)’Dim wSht As Worksheet
 Dim allwShts As Sheets
 Set allwShts = Worksheets
 For Each wSht In allwShts
         sumall = sumall + cel.value
 Next wSht
End function
Nhung ket qua bi loi #VALUE!
Ban co the giup minh nhe!Cam on nhieu"

Mình có nghĩ cách giải quyết tàm tạm trong file att, mong các bạn giúp tiếp cho bạn thanguct@gmail.com
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Một cách cực kỳ đơn giản là bạn sử dụng hàm có sẵn trong Excel.
Để tính tổng toàn bộ các ô A1 trong tất cả các sheet ta dùng hàm: Sum()
Tại ô bất kỳ (A3 chẳng hạn) đánh công thức sau:
=SUM(Sheet1:Sheet3!A1)
OK

Nếu bạn thích viết bằng VBA thì sử dụng code sau:
PHP:
Option Explicit
Public Function tinhtong_sheet(Cell_1 As Range)
    Dim Sum_All_Sheet As Double
    Dim i As Byte
    Dim sheet
    i = 0
    Sum_All_Sheet = 0
    For Each sheet In Worksheets
        i = i + 1
        Sum_All_Sheet = Sum_All_Sheet + _
                   Application.Sheets(i).Cells(Cell_1.Row, Cell_1.Column)
    Next
    tinhtong_sheet = Sum_All_Sheet
End Function
 
Upvote 0
Vấn đề này đã được tro đổi ở (tuy nhiên vẫn còn hạn chế là khi thay đổi các giá trị thì nó không tự tính toán lại):



http://www.giaiphapexcel.com/forum/showthread.php?t=121&page=2



To ngvson: Công thức = Sum() của bạn thật đơn giản, hiệu quả. Nhưng tôi hỏi nếu tên các sheet không cùng kiểu thì như thế nào vậy, có nên dùng theo thứ tự các sheet 1,2,3... thì tuỳ biến cao hơn không?
 
Upvote 0
Anh Hướng à. Tên Sheet không quan trọng. Vấn đề là lúc mình đánh tên hàm thôi.
Tại ô cần tính tổng, đánh =sum( rồi chọn ô cần tính tổng, sau đó nhấn phím Shift rồi chọn đến sheet cuối cùng, tiếp đó đánh dấu ) là xong.

Hình như hàm tính tổng của tôi khắc phục được hạn chế không tự động tính toán lại khi giá trị các ô thay đổi!!!!!!!!!
 
Upvote 0
bạn thanguct@gmail.com có báo kelvin
---------------
Cảm ơn bạn rất nhiều ,mình cũng bận nên hôm nay mới đọc được thư của bạn .Vấn đề của mình đã được mọi người tham gia giúp đỡ .Xin cảm ơn tất cả !!Tạm biệt chúc vui vẻ
--
buiduythang
NCC.,JSC
BaiChayRoad,HalongCity
-----------------------------------
Nếu có ý mới trong v/đề này, mong bạn post lên để mọi người tham khảo thêm.A! nhân tiện hỏi thăm ban điều hành, ở web WKT mỗi khi có tin nhắn từ forum nó đều C/c về địa chỉ e-mail của mình, còn tin nhắn ở đây sao kg thấy default như vậy
 
Upvote 0
Có bạn hỏi mình:"minh muon viet mot ham de tinh tong mot o trong tat ca cac sheet .thi du nhu o A3 chang hen minh viet nhu sau:
Mã:
Function sumall(cel As Range)’Dim wSht As Worksheet
 Dim allwShts As Sheets
 Set allwShts = Worksheets
 For Each wSht In allwShts
         sumall = [B]sumall[/B] + cel.value
 Next wSht
End function
Nhung ket qua bi loi #VALUE!
Ban co the giup minh nhe!Cam on nhieu"

Mình có nghĩ cách giải quyết tàm tạm trong file att, mong các bạn giúp tiếp cho bạn thanguct@gmail.com
Bạn "chết" ở chỗ đậm đậm kia kìa, bạn tính qua tên hàm như thế kia là "đại họa" cho việc lập trình sau này, vấn đề này gọi là đệ quy - và chỉ dùng trong trường hợp hiểu rất rõ về tính dừng của hàm.
Để an toàn, nên làm như sau thì khỏi luôn


PHP:
Function sumall(cel As Range)’Dim wSht As Worksheet
 Dim allwShts As Sheets
 Dim t as long ' Ví dụ là số nguyên
 Set allwShts = Worksheets
 For Each wSht In allwShts
         t = t+ cel.value
 Next wSht
 sumall = t
End function
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Thêm một tham khảo dùng công thức

Có bạn hỏi mình:"minh muon viet mot ham de tinh tong mot o trong tat ca cac sheet .thi du nhu o A3 chang hạn.Ban co the giup minh nhe!Cam on nhieu"
PhanTuHuong đã viết:
Vấn đề này đã được tro đổi ở (tuy nhiên vẫn còn hạn chế là khi thay đổi các giá trị thì nó không tự tính toán lại):
To ngvson: Công thức = Sum() của bạn thật đơn giản, hiệu quả. Nhưng tôi hỏi nếu tên các sheet không cùng kiểu thì như thế nào vậy, có nên dùng theo thứ tự các sheet 1,2,3... thì tuỳ biến cao hơn không?
Gửi bác file này để tham khảo Histories File
xls.gif
Summing_Across02.xls (26.0 KB) của ndu96081631
  1. 100% là công thức
  2. Có thể tùy biến khoảng sheet được lấy giá trị để cộng
  3. Khi thêm sheet, đổi tên sheet, chuyển vị trí sheet thì List thay đổi theo <-> kết quả cũng thay đổi theo ...
----------------------
Post xong nhìn lại mới thấy nhầm mục: đây là mục Các hàm tự tạo cho worksheet thế mà lại tương công thức thuần của excel vào. mong các bác bỏ qua nhé
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
cho em hỏi ké bài ở đây với,
yêu cầu cũng như chủ thớt, khi các sheet khác cập nhật thì sheet tong hop cung cập nhật theo và có thêm yêu cầu em viết trong file
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom