Tìm và lấy dữ liệu trong bảng cell bằng VBA

Liên hệ QC

hathanh349

Thành viên mới
Tham gia
3/5/19
Bài viết
31
Được thích
5
Em mới học VBA nên chưa biết nhiều, nhờ các bác giúp.
em có bảng như trên. khiđiền tên vàoô V2, thì sẽđược kết quả nhưở dưới. các bác giúp em với. Trânthành cảmỏn!

1622560617753.png

1622560734155.png
 

File đính kèm

  • Phân công Tuần 2.xlsm
    19.7 KB · Đọc: 21
Em mới học VBA nên chưa biết nhiều, nhờ các bác giúp.
em có bảng như trên. khiđiền tên vàoô V2, thì sẽđược kết quả nhưở dưới. các bác giúp em với. Trânthành cảmỏn!

View attachment 259867

View attachment 259868
Code trong sheet2
Bạn gõ phím nhanh quá, bàn phím bị dính
Mã:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sArr(), Res(), gv$, i&, k&, j&, N&, sRow&, sCol&
  If Target.Address = "$V$2" Then
    Application.EnableEvents = False
    i = Range("V" & Rows.Count).End(xlUp).Row
    If i > 2 Then Range("V3:V" & i).ClearContents
    gv = Range("V2").Value
    If gv <> Empty Then
      ReDim Res(1 To 100, 1 To 1)
      sArr = Range("A3:T20").Value
      sRow = UBound(sArr)
      sCol = UBound(sArr, 2)
      For i = 1 To sRow
        For j = 2 To sCol
          If sArr(i, j) = gv Then
            k = k + 1
            Res(k, 1) = sArr(i, 1)
          End If
        Next j
      Next i
    End If
    If k Then Range("V3").Resize(k) = Res
    Application.EnableEvents = True
  End If
End Sub
 
Upvote 0
Code trong sheet2
Bạn gõ phím nhanh quá, bàn phím bị dính
Mã:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sArr(), Res(), gv$, i&, k&, j&, N&, sRow&, sCol&
  If Target.Address = "$V$2" Then
    Application.EnableEvents = False
    i = Range("V" & Rows.Count).End(xlUp).Row
    If i > 2 Then Range("V3:V" & i).ClearContents
    gv = Range("V2").Value
    If gv <> Empty Then
      ReDim Res(1 To 100, 1 To 1)
      sArr = Range("A3:T20").Value
      sRow = UBound(sArr)
      sCol = UBound(sArr, 2)
      For i = 1 To sRow
        For j = 2 To sCol
          If sArr(i, j) = gv Then
            k = k + 1
            Res(k, 1) = sArr(i, 1)
          End If
        Next j
      Next i
    End If
    If k Then Range("V3").Resize(k) = Res
    Application.EnableEvents = True
  End If
End Sub
Cảm ơn bác rất nhiều ah
Bài đã được tự động gộp:

Code trong sheet2
Bạn gõ phím nhanh quá, bàn phím bị dính
Mã:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sArr(), Res(), gv$, i&, k&, j&, N&, sRow&, sCol&
  If Target.Address = "$V$2" Then
    Application.EnableEvents = False
    i = Range("V" & Rows.Count).End(xlUp).Row
    If i > 2 Then Range("V3:V" & i).ClearContents
    gv = Range("V2").Value
    If gv <> Empty Then
      ReDim Res(1 To 100, 1 To 1)
      sArr = Range("A3:T20").Value
      sRow = UBound(sArr)
      sCol = UBound(sArr, 2)
      For i = 1 To sRow
        For j = 2 To sCol
          If sArr(i, j) = gv Then
            k = k + 1
            Res(k, 1) = sArr(i, 1)
          End If
        Next j
      Next i
    End If
    If k Then Range("V3").Resize(k) = Res
    Application.EnableEvents = True
  End If
End Sub
1622708330760.pngbác có thể giúpthêm.để kết quả hiển thị như nàyđược không ah.
Thêm môn ở dòng 1 vào lớp
Em cảm ơn
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác rất nhiều ah
Bài đã được tự động gộp:


View attachment 259965bác có thể giúpthêm.để kết quả hiển thị như nàyđược không ah.
Thêm môn ở dòng 1 vào lớp
Em cảm ơn
Chỉnh lại tí xíu
Mã:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sArr(), Res(), gv$, i&, k&, j&, N&, sRow&, sCol&
  If Target.Address = "$V$2" Then
    Application.EnableEvents = False
    i = Range("V" & Rows.Count).End(xlUp).Row
    If i > 2 Then Range("V3:V" & i).ClearContents
    gv = Range("V2").Value
    If gv <> Empty Then
      ReDim Res(1 To 100, 1 To 1)
      sArr = Range("A1:T20").Value
      sRow = UBound(sArr)
      sCol = UBound(sArr, 2)
      For i = 3 To sRow
        For j = 2 To sCol
          If sArr(i, j) = gv Then
            k = k + 1
            Res(k, 1) = sArr(i, 1) & " - " & sArr(1, j)
          End If
        Next j
      Next i
    End If
    If k Then Range("V3").Resize(k) = Res
    Application.EnableEvents = True
  End If
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom