Chỉ hiện dòng có kết quả đúng ở cột theo yêu cầu

Liên hệ QC

duynhatgpe

Thành viên mới
Tham gia
1/12/15
Bài viết
42
Được thích
5
Xin chào anh chị GPE thân mến !
Hãy giúp mình tìm hiểu học hỏi code VBA này bằng For Each hay hàm gì đó để chỉ hiện ra kết quả "Yes"
 

File đính kèm

  • NUMBER TEXT VBA.xlsm
    25.1 KB · Đọc: 21
Xin chào anh chị GPE thân mến !
Hãy giúp mình tìm hiểu học hỏi code VBA này bằng For Each hay hàm gì đó để chỉ hiện ra kết quả "Yes"
"tìm hiểu học hỏi" cách trình bày vấn đề trước đã.
Biết cách trình bày vấn đề thì học code dễ như trở bàn tay.
 
Upvote 0
Xin chào anh chị GPE thân mến !
Hãy giúp mình tìm hiểu học hỏi code VBA này bằng For Each hay hàm gì đó để chỉ hiện ra kết quả "Yes"
Chạy code . . .
Mã:
Sub ABC()
  Dim sArr(), res(), tmp$, t1$, t2$, t3$
  Dim sRow&, sCol&, n&, j&, k&
 
  sArr = Sheet1.Range("E2:L2").Value
  sRow = Len(sArr(1, 1)):  sCol = UBound(sArr, 2)
  ReDim res(1 To sRow, 1 To sCol)
  t1 = sArr(1, 1): t2 = sArr(1, 2): t3 = sArr(1, 3)
  tmp = Mid(t3, 12, 1)
 
  For j = 1 To sRow
    If Mid(t3, j, 1) = tmp Then
      k = k + 1
      res(k, 1) = Mid(t1, j, 1)
      res(k, 2) = Mid(t2, j, 1)
      res(k, 3) = "Yes"
      For n = 4 To sCol
        If Mid(sArr(1, n), j, 1) = Mid(sArr(1, n), 12, 1) Then
          res(k, n) = "Yes"
        Else
          res(k, n) = "-"
        End If
      Next n
    End If
  Next j
  Sheet1.Range("A4:L10000").Clear
  If k Then Sheet1.Range("E7").Resize(k, sCol) = res
End Sub
 
Upvote 0
Chạy code . . .
Mã:
Sub ABC()
  Dim sArr(), res(), tmp$, t1$, t2$, t3$
  Dim sRow&, sCol&, n&, j&, k&
 
  sArr = Sheet1.Range("E2:L2").Value
  sRow = Len(sArr(1, 1)):  sCol = UBound(sArr, 2)
  ReDim res(1 To sRow, 1 To sCol)
  t1 = sArr(1, 1): t2 = sArr(1, 2): t3 = sArr(1, 3)
  tmp = Mid(t3, 12, 1)
 
  For j = 1 To sRow
    If Mid(t3, j, 1) = tmp Then
      k = k + 1
      res(k, 1) = Mid(t1, j, 1)
      res(k, 2) = Mid(t2, j, 1)
      res(k, 3) = "Yes"
      For n = 4 To sCol
        If Mid(sArr(1, n), j, 1) = Mid(sArr(1, n), 12, 1) Then
          res(k, n) = "Yes"
        Else
          res(k, n) = "-"
        End If
      Next n
    End If
  Next j
  Sheet1.Range("A4:L10000").Clear
  If k Then Sheet1.Range("E7").Resize(k, sCol) = res
End Sub
Thành thật cám ơn , chúc luôn gặp nhiều may mắn và hạnh phúc !hieuccd.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom