Cách tạo code cho hàm ở trang status bar (1 người xem)

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

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

cuaroan

Thành viên mới
Tham gia
5/2/13
Bài viết
6
Được thích
1
Em xin chào các bậc tiền bối
Em mới gia nhập diễn đàn, và VBA chưa biết nhiều. Hôm nay em xin được hỏi là muốn tạo môt hàm giống như hàm sum ở dưới thanh trạng thái ra kết quả là tổng giá trị của các ô đuợc lựa chọn thì viết code như thế nào ạ. Em xin cảm ơn ạ.
 
Em xin chào các bậc tiền bối
Em mới gia nhập diễn đàn, và VBA chưa biết nhiều. Hôm nay em xin được hỏi là muốn tạo môt hàm giống như hàm sum ở dưới thanh trạng thái ra kết quả là tổng giá trị của các ô đuợc lựa chọn thì viết code như thế nào ạ. Em xin cảm ơn ạ.

Bạn đặt thủ tục này trong Sheet Module:

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim SelSum As Double
    SelSum = WorksheetFunction.Sum(Selection)
    If SelSum <> 0 And Selection.Rows.Count > 1 Then
        Application.StatusBar = "Sum: " & SelSum
    Else
        Application.StatusBar = ""
    End If
End Sub
 
Upvote 0
Em cảm ơn anh rất nhiều ạ, anh cho em hỏi thêm là code này là một sự kiện nên sẽ tự chạy khi thay đổi vùng chọn đúng không ạ. Tuy nhiên em thấy nó không tự động thực thi, dù em bấm F5 (mà theo em hiểu F5 chỉ dùng để chạy macro còn sự kiện thì tự động chạy). Em xin chỉ giáo thêm ạ.
 
Upvote 0
Em cảm ơn anh rất nhiều ạ, anh cho em hỏi thêm là code này là một sự kiện nên sẽ tự chạy khi thay đổi vùng chọn đúng không ạ. Tuy nhiên em thấy nó không tự động thực thi, dù em bấm F5 (mà theo em hiểu F5 chỉ dùng để chạy macro còn sự kiện thì tự động chạy). Em xin chỉ giáo thêm ạ.
Bạn muốn áp dụng cho sheet nào thì đặt code vào sheet đó, cụ thể là Click phải tại tên sheet, chọn View code và dán code trên vào (hình như bạn đang đặt code trên Module?).
Nếu bạn muốn áp dụng cho tất cả các sheet thì nên đưa code trên vào sự kiện Workbook_SheetChange của đối tượng ThisWorkbook.
 
Upvote 0
Em cảm ơn anh rất nhiều ạ, anh cho em hỏi thêm là code này là một sự kiện nên sẽ tự chạy khi thay đổi vùng chọn đúng không ạ. Tuy nhiên em thấy nó không tự động thực thi, dù em bấm F5 (mà theo em hiểu F5 chỉ dùng để chạy macro còn sự kiện thì tự động chạy). Em xin chỉ giáo thêm ạ.
Thông thường, mình làm trên sheet nào thì mình thực hiện trên sheet đó (bằng code đó).

Nếu muốn thực hiện hết trên các sheet thì đặt code sau vào trong ThisWorkbook Module:

Mã:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim SelSum As Double
    SelSum = WorksheetFunction.Sum(Selection)
    If SelSum <> 0 And Selection.Rows.Count > 1 Then
        Application.StatusBar = "Sum: " & SelSum
    Else
        Application.StatusBar = ""
    End If
End Sub

Mà tôi cũng thấy lạ là cái vụ Sum/ Count/ Min/ Max ... này đã có sẳn trên thanh Status rồi, vậy thực hiện nó thêm làm gì nhỉ????
 
Upvote 0
Mà tôi cũng thấy lạ là cái vụ Sum/ Count/ Min/ Max ... này đã có sẳn trên thanh Status rồi, vậy thực hiện nó thêm làm gì nhỉ????
Tất nhiên hỏi thì hỏi vậy, vấn đề là họ muốn làm sao đưa kết quả này xuống Status Bar, còn kết quả này là cái gì thì tùy mục đích sử dụng, chẳng hạn một cái UDF nào đó, hoặc đơn giản là SUMIF, COUNTIF,...
 
Upvote 0
Tất nhiên hỏi thì hỏi vậy, vấn đề là họ muốn làm sao đưa kết quả này xuống Status Bar, còn kết quả này là cái gì thì tùy mục đích sử dụng, chẳng hạn một cái UDF nào đó, hoặc đơn giản là SUMIF, COUNTIF,...
ê Vậy còn trường hợp em muôn thể hiện kết quả của ô A1 của sheet 1 thì làm như thế nào vậy anh.
ô A1 có thể là kiểu text hoặc số
 
Upvote 0
Web KT

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

Back
Top Bottom