tìm giá trị âm bằng VBA

  • Thread starter Thread starter tonny jj
  • Ngày gửi Ngày gửi
Liên hệ QC

tonny jj

Thành viên mới
Tham gia
5/10/11
Bài viết
48
Được thích
8
Em cũng đang muốn tự học VBA và nghĩ vòng lặp có thể làm được điều này nhưng không biết làm cách nào cả. Với kiến thức hạn chế nên em mạnh dạn đăng bài để mở mang kiến thức và phục vụ cho công công việc được thuận tiện hơn. Em xin nhờ các bác giúp em.
Em muốn tìm giá trị âm trong khoảng dữ liệu từ C5:BD58 của tất cả các sheet có tên là "X1; X2; X3.... đến X35"
Với mỗi giá trị âm được ghi xuống sheet "KT Gia tri am" theo kiểu: loại đất âm - xã có loại đất âm và 1 cột là tên sheet có giá trị âm đó.
VD: LUN-Xã 1; X1
RPH-Xã 1; X1
Cụ thể em đã đưa vào file mình đính kèm.
Em xin Chân thành sự giúp đỡ của các bác! chúc các bác có 1 ngày làm việc vui vẻ!
 

File đính kèm

Em cũng đang muốn tự học VBA và nghĩ vòng lặp có thể làm được điều này nhưng không biết làm cách nào cả. Với kiến thức hạn chế nên em mạnh dạn đăng bài để mở mang kiến thức và phục vụ cho công công việc được thuận tiện hơn. Em xin nhờ các bác giúp em.
Em muốn tìm giá trị âm trong khoảng dữ liệu từ C5:BD58 của tất cả các sheet có tên là "X1; X2; X3.... đến X35"
Với mỗi giá trị âm được ghi xuống sheet "KT Gia tri am" theo kiểu: loại đất âm - xã có loại đất âm và 1 cột là tên sheet có giá trị âm đó.
VD: LUN-Xã 1; X1
RPH-Xã 1; X1
Cụ thể em đã đưa vào file mình đính kèm.
Em xin Chân thành sự giúp đỡ của các bác! chúc các bác có 1 ngày làm việc vui vẻ!
Bạn kiểm tra code
Mã:
Sub tonghop()
    Dim i, ar, kq(1 To 1000, 1 To 3), sh As Worksheet, k As Integer, j As Integer, tenxa As String
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 1) = "X" Then
            tenxa = sh.Range("B1")
            ar = sh.Range("E5:BD58")
            For i = 3 To UBound(ar)
                For j = 1 To UBound(ar, 2)
                    If Val(ar(i, j)) < 0 Then
                        k = k + 1
                        kq(k, 1) = k
                        kq(k, 2) = ar(1, j) & " - " & tenxa
                        kq(k, 3) = sh.Name
                    End If
                Next
            Next
        End If
    Next
    If k Then Sheet1.Range("A3").Resize(k, 3) = kq
End Sub
 
Upvote 0
Bạn kiểm tra code
Mã:
Sub tonghop()
    Dim i, ar, kq(1 To 1000, 1 To 3), sh As Worksheet, k As Integer, j As Integer, tenxa As String
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 1) = "X" Then
            tenxa = sh.Range("B1")
            ar = sh.Range("E5:BD58")
            For i = 3 To UBound(ar)
                For j = 1 To UBound(ar, 2)
                    If Val(ar(i, j)) < 0 Then
                        k = k + 1
                        kq(k, 1) = k
                        kq(k, 2) = ar(1, j) & " - " & tenxa
                        kq(k, 3) = sh.Name
                    End If
                Next
            Next
        End If
    Next
    If k Then Sheet1.Range("A3").Resize(k, 3) = kq
End Sub
Em cảm ơn bác rất nhiều. Chúc bác ngày cuối tuần vui vẻ
 
Upvote 0
Web KT

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

Back
Top Bottom