Chuyển hàm từ excel sang code VBA (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

themorzer

Thành viên chính thức
Tham gia
24/5/13
Bài viết
95
Được thích
1
Mình có File Excel đính kèm, tính công thức trên Excel, nhưng khi mình đổi qua VBA sử dụng hàm For Each
mong các bạn hỗ trợ và giúp chổ nào sai để mình chỉnh lai, mình làm bằng hàm Excel, nhưng khi áp dụng vào Code VBA thì k hoạt động
 

File đính kèm

Upvote 0
Chờ cái kết quả cuối cùng thứ n mình tiêu hết bữa trưa rồi, giờ đói meo. Chạy rẽ khói luôn!!!
mới ăn mì gói xong
Mã:
Public Sub GPE()
Dim Darr(), Arr(1 To 100, 1 To 3), i As Long, j As Long, iR As Long, DK As String
Darr = Range("A2:I14").Value:       DK = Range("K2").Value
For i = 2 To UBound(Darr)
  If Darr(i, 1) = DK Then
    For j = 2 To UBound(Darr, 2)
      If Darr(i, j) > 0 Then
        col = 3 + (Left(Darr(1, j), 2) = "36") * 2 + (Left(Darr(1, j), 2) = "26")
        Arr(100, col) = Arr(100, col) + 1
        Arr(Arr(100, col), col) = Darr(1, j)
        If iR < Arr(100, col) Then iR = Arr(100, col)
      End If
    Next j
  End If
Next i
Range("M1:R100").ClearContents
If iR Then Range("P3:R3").Resize(iR) = Arr
End Sub
 
Upvote 0
Upvote 0
mới ăn mì gói xong
Mã:
Public Sub GPE()
Dim Darr(), Arr(1 To 100, 1 To 3), i As Long, j As Long, iR As Long, DK As String
Darr = Range("A2:I14").Value:       DK = Range("K2").Value
For i = 2 To UBound(Darr)
  If Darr(i, 1) = DK Then
    For j = 2 To UBound(Darr, 2)
      If Darr(i, j) > 0 Then
        col = 3 + (Left(Darr(1, j), 2) = "36") * 2 + (Left(Darr(1, j), 2) = "26")
        Arr(100, col) = Arr(100, col) + 1
        Arr(Arr(100, col), col) = Darr(1, j)
        If iR < Arr(100, col) Then iR = Arr(100, col)
      End If
    Next j
  End If
Next i
Range("M1:R100").ClearContents
If iR Then Range("P3:R3").Resize(iR) = Arr
End Sub
Chào bạn. Do bận việc không online được. Bạn có thể giải thích giúp mình đoạn code này không

If Darr(i, j) > 0 Then
col = 3 + (Left(Darr(1, j), 2) = "36") * 2 + (Left(Darr(1, j), 2) = "26")
Arr(100, col) = Arr(100, col) + 1
Arr(Arr(100, col), col) = Darr(1, j)
If iR < Arr(100, col) Then iR = Arr(100, col)
 
Upvote 0
Chào bạn. Do bận việc không online được. Bạn có thể giải thích giúp mình đoạn code này không

If Darr(i, j) > 0 Then
col = 3 + (Left(Darr(1, j), 2) = "36") * 2 + (Left(Darr(1, j), 2) = "26")
Arr(100, col) = Arr(100, col) + 1
Arr(Arr(100, col), col) = Darr(1, j)
If iR < Arr(100, col) Then iR = Arr(100, col)
col = 3 + (Left(Darr(1, j), 2) = "36") * 2 + (Left(Darr(1, j), 2) = "26") là xác định cột kết quả
nếu 2 ký tự đầu không phải là 36 thì col là 3, nếu là 36 thì 3-2=1 và nếu là 26 thì 3-1=2
Arr(100, col) = Arr(100, col) + 1 là xác định dòng kết quả
If iR < Arr(100, col) Then iR = Arr(100, col) là xác định dòng cuối cùng của bảng kết quả
bạn mở code bấm phím chức năng F8 rà chuộc vào các biến để xem vận hành của code
 
Upvote 0
Web KT

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

Back
Top Bottom