songiang5011
Thành viên mới
- Tham gia
- 6/7/21
- Bài viết
- 43
- Được thích
- 10
hay quá anh ơi.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
Sửa "G3" thành "G" & Target.Rowhay 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
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 ạ.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
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.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 anhMộ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