Tính tổng từ G3 đến vị trí kích chuột

Liên hệ QC

songiang5011

Thành viên mới
Tham gia
6/7/21
Bài viết
43
Được thích
10
Nhờ anh chị trong diễn đàn giúp em, em muốn tính tổng trong phạm vi từ ô G3 đến AK3, nhưng khi em kích chuột bất kỳ, ví dụ em kích vào ô M9 thì nó công thức sẽ hiểu là tính từ ô G3 đến M3 hiện kết quả ở ô D2. mong anh chị trong diễn dàn giúp đỡ em,
Em cám ơn 1649420936610.png
 

File đính kèm

  • Xin giúp đỡ..xlsb
    8.2 KB · Đọc: 8
Nếu chọn vùng nhiều ô thì chỉ xét ô ở bên trái trên cùng. Nếu ô được xét trước cột G hoặc sau cột AK thì chỉ xóa comment cuối cùng.
Mã:
Private lastCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not lastCell Is Nothing Then lastCell.ClearComments

    Set lastCell = Target.Cells(1, 1)
   
    With lastCell
        If .Column >= 7 And .Column <= 37 Then
            .AddComment.text CStr(Application.Sum(Me.Range("G3").Resize(1, .Column - 6)))
        Else
            Set lastCell = Nothing
        End If
    End With
End Sub
hay quá anh ơi.
anh ơi cho em hỏi code anh đang tính cố định hàng 3, không muốn cố định hàng 3 làm như thế nào anh, kiểu như ra kết quả code dưới. Mong anh giải đáp giúp em, em cám ơn.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("D2").Value = 0
If Target.Count = 1 Then
If Target.Column >= 7 And Target.Column <= 37 Then
Range("D2").Value = Application.Sum(Range(Cells(Target.Row, 7), Cells(Target.Row, Target.Column)))
End If
End If

End Sub
 
Upvote 0
hay quá anh ơi.
anh ơi cho em hỏi code anh đang tính cố định hàng 3, không muốn cố định hàng 3 làm như thế nào anh, kiểu như ra kết quả code dưới. Mong anh giải đáp giúp em, em cám ơn.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("D2").Value = 0
If Target.Count = 1 Then
If Target.Column >= 7 And Target.Column <= 37 Then
Range("D2").Value = Application.Sum(Range(Cells(Target.Row, 7), Cells(Target.Row, Target.Column)))
End If
End If

End Sub
Sửa "G3" thành "G" & Target.Row

Tức cuối cùng có
Mã:
Private lastCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not lastCell Is Nothing Then lastCell.ClearComments

    Set lastCell = Target.Cells(1, 1)
   
    With lastCell
        If .Column >= 7 And .Column <= 37 Then
            .AddComment.Text CStr(Application.Sum(Me.Range("G" & Target.Row).Resize(1, .Column - 6)))
        Else
            Set lastCell = Nothing
        End If
    End With
End Sub
 
Upvote 0
Sửa "G3" thành "G" & Target.Row

Tức cuối cùng có
Mã:
Private lastCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not lastCell Is Nothing Then lastCell.ClearComments

    Set lastCell = Target.Cells(1, 1)
  
    With lastCell
        If .Column >= 7 And .Column <= 37 Then
            .AddComment.Text CStr(Application.Sum(Me.Range("G" & Target.Row).Resize(1, .Column - 6)))
        Else
            Set lastCell = Nothing
        End If
    End With
End Sub
vâng, em cám ơn anh ạ.
 
Upvote 0
Một cách khác, không dùng comment, mà dùng "input message"
PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Intersect(Target, Range("G:AK")) Is Nothing Then Exit Sub
   With Target.Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=-10 ^ 20, Formula2:=10 ^ 20
        .InputMessage = WorksheetFunction.Sum(Range(Cells(Target.Row, "G"), Target))
    End W
 

File đính kèm

  • Capture.JPG
    Capture.JPG
    17.6 KB · Đọc: 9
Upvote 0
Một cách khác, không dùng comment, mà dùng "input message"
PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Intersect(Target, Range("G:AK")) Is Nothing Then Exit Sub
   With Target.Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=-10 ^ 20, Formula2:=10 ^ 20
        .InputMessage = WorksheetFunction.Sum(Range(Cells(Target.Row, "G"), Target))
    End W
Hay đấy. Cái này của Validation, thấy hoài mà nay không nghĩ ra.
 
Upvote 0
Một cách khác, không dùng comment, mà dùng "input message"
PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Intersect(Target, Range("G:AK")) Is Nothing Then Exit Sub
   With Target.Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=-10 ^ 20, Formula2:=10 ^ 20
        .InputMessage = WorksheetFunction.Sum(Range(Cells(Target.Row, "G"), Target))
    End W
hay quá anh ơi, em cám ơn anh
 
Upvote 0
Web KT

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

Back
Top Bottom