Làm sao để click chuột phải lấy dòng trên cùng gần nhất

Liên hệ QC

congnguyen88

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/7/14
Bài viết
356
Được thích
31
Em chào anh chị Diễn đàn. Em tự việt 1 đoạn code khi click chuột phải vào dòng nào thì lấy kết quả dòng đó .Nhưng có 1 số dòng có Mã, Tên khách hàng làm đại diện, thì khi click chuột phải dòng bên dưới thì vẫn lấy dòng trên
1585189830553.png
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim i As Long
i = Selection.Row

If Not Intersect(Target, Range("B3:f27")) Is Nothing Then
If Range("d" & i).Value <> "" Then
    ' Chổ này chỉ đúng khi em click phải vào những dòng cột B và cột C có dữ liệu, còn khi Click vào cột B,C mà không có dữ liệu nó lại sai
        Range("I4:J4").Value = Range("b" & i & ":c" & i).Value
 
      End If
End If
End Sub

Em xin cảm ơn các anh chị diễn đàn !
 

File đính kèm

  • chuot phai.xlsb
    16.9 KB · Đọc: 3
Em chào anh chị Diễn đàn. Em tự việt 1 đoạn code khi click chuột phải vào dòng nào thì lấy kết quả dòng đó .Nhưng có 1 số dòng có Mã, Tên khách hàng làm đại diện, thì khi click chuột phải dòng bên dưới thì vẫn lấy dòng trên
View attachment 234057
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim i As Long
i = Selection.Row

If Not Intersect(Target, Range("B3:f27")) Is Nothing Then
If Range("d" & i).Value <> "" Then
    ' Chổ này chỉ đúng khi em click phải vào những dòng cột B và cột C có dữ liệu, còn khi Click vào cột B,C mà không có dữ liệu nó lại sai
        Range("I4:J4").Value = Range("b" & i & ":c" & i).Value

      End If
End If
End Sub

Em xin cảm ơn các anh chị diễn đàn !
Chỉnh
i = Selection.Row
Thành
i = Target.Row
 
Upvote 0
cái này dễ mà 1 bạn dùng vòng lập For Step hay end up cột MH hay tên KH
Thank bạn. Mình làm được rồi,. Có điều hơi dài quá
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim i As Long, a As Long
i = Selection.Row

If Not Intersect(Target, Range("B3:f27")) Is Nothing Then
    If Range("d" & i).Value <> "" Then
      
            If Range("b" & i) <> "" Then
                Range("I4:J4").Value = Range("b" & i & ":c" & i).Value
            Else
              a = Range("b" & i).End(xlUp).Row
               Range("I4:J4").Value = Range("b" & a & ":c" & a).Value
            End If
    Else
    
           Range("I4:J4").Value = ""
      
    End If
End If
End Sub
Bài đã được tự động gộp:

Chỉnh
i = Selection.Row
Thành
i = Target.Row

dạ em cảm ơn thầy . sao code nó cũng chưa lấy được dòng trên cùng khi cột B,C trống vậy thầy

1585191292947.png
 
Lần chỉnh sửa cuối:
Upvote 0
Thank bạn. Mình làm được rồi,. Có điều hơi dài quá
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim i As Long, a As Long
i = Selection.Row

If Not Intersect(Target, Range("B3:f27")) Is Nothing Then
    If Range("d" & i).Value <> "" Then
     
            If Range("b" & i) <> "" Then
                Range("I4:J4").Value = Range("b" & i & ":c" & i).Value
            Else
              a = Range("b" & i).End(xlUp).Row
               Range("I4:J4").Value = Range("b" & a & ":c" & a).Value
            End If
    Else
   
           Range("I4:J4").Value = ""
     
    End If
End If
End Sub
Bài đã được tự động gộp:



dạ em cảm ơn thầy . sao code nó cũng chưa lấy được dòng trên cùng khi cột B,C trống vậy thầy

View attachment 234060
vậy là giỏi rồi, code còn đẹp hơn mình viết nữa hihi
 
Upvote 0
Chỉnh
i = Selection.Row
Thành
i = Target.Row

Tiện cho em hỏi Sự khác nhau Target.Row và Target.Row . Trước giờ em toàn chơi Selection.Row ( Nghĩa là cái dòng mình đang chọn )
Bài đã được tự động gộp:

vậy là giỏi rồi, code còn đẹp hơn mình viết nữa hihi
hihi mình gà lắm. chỉ biết sơ sơ thôi bạn. đừng quá khen
 
Upvote 0
Tiện cho em hỏi Sự khác nhau Target.Row và Target.Row . Trước giờ em toàn chơi Selection.Row ( Nghĩa là cái dòng mình đang chọn )
Bài đã được tự động gộp:


hihi mình gà lắm. chỉ biết sơ sơ thôi bạn. đừng quá khen
Mình nhầm, Trong trường hợp nầy Selection.Row và Target.Row giống nhau, các tình huống khác Target.Row thường chuẩn hơn
Chỉnh lại code
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Dim i As Long
 
  If Not Intersect(Target, Range("B4:f27")) Is Nothing Then
    i = Target.Row    
    If Range("d" & i).Value <> "" Then
      i = Range("b" & i + 1).End(xlUp).Row
      Range("I4:J4").Value = Range("b" & i & ":c" & i).Value
    End If
  End If
End Sub
 
Upvote 0
Mình nhầm, Trong trường hợp nầy Selection.Row và Target.Row giống nhau, các tình huống khác Target.Row thường chuẩn hơn
Chỉnh lại code
Mã:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Dim i As Long

  If Not Intersect(Target, Range("B4:f27")) Is Nothing Then
    i = Target.Row   
    If Range("d" & i).Value <> "" Then
      i = Range("b" & i + 1).End(xlUp).Row
      Range("I4:J4").Value = Range("b" & i & ":c" & i).Value
    End If
  End If
End Sub

em cảm ơn thậy ạ
 
Upvote 0
Web KT
Back
Top Bottom