Không biết dữ liệu của bạn thích duyệt trên sheet hay trên mảng cũng chả biết cái cấu trúc dữ liệu của bạn mặt ngang mũi dọc ra sao.nếu chỉ là tạo vòng lặp thì đơn giản nhất với code của chuối của mình thì bạn tham khảoGiả sử có biến a và b (số lương và đơn giá).
a x b = c
Làm sao kết quả dòng c + cũng trả về kết quả a x b. Với điều kiện a hoặc b >0.
Tạo vòng lặp như thế nào, nhờ mọi người giúp em ạ.
Tks mọi người.
Sub Don_Gia()
Dim i As Integer
Dim Arr(), Kq()
Dim a As Double, b As Double
With Sheet1
Arr = .Range("A1", .Range("A" & Rows.Count).End(xlUp)).Resize(, 2).Value
ReDim Kq(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
a = Arr(i, 1): b = Arr(i, 2)
If a > 0 Or b > 0 Then
Kq(i, 1) = a * b
End If
Next
.Range("C1").Resize(UBound(Kq), 1) = Kq
End With
End Sub
Cám ơn Cuto nhéKhông biết dữ liệu của bạn thích duyệt trên sheet hay trên mảng cũng chả biết cái cấu trúc dữ liệu của bạn mặt ngang mũi dọc ra sao.nếu chỉ là tạo vòng lặp thì đơn giản nhất với code của chuối của mình thì bạn tham khảo
Mã:Sub Don_Gia() Dim i As Integer Dim Arr(), Kq() Dim a As Double, b As Double With Sheet1 Arr = .Range("A1", .Range("A" & Rows.Count).End(xlUp)).Resize(, 2).Value ReDim Kq(1 To UBound(Arr), 1 To 1) For i = 1 To UBound(Arr) a = Arr(i, 1): b = Arr(i, 2) If a > 0 Or b > 0 Then Kq(i, 1) = a * b End If Next .Range("C1").Resize(UBound(Kq), 1) = Kq End With End Sub
Cu tồ ơi, nếu mình áp dụng trên 2 sheet thì phải làm sao ạ.Cám ơn Cuto nhé
Sub Test()
Dim i As Integer
Dim Arr(), Kq()
Dim a As Double, b As Double
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Sheet1" Or ws.Name = "Sheet2" Then
Arr = ws.Range("A2", ws.Range("A" & Rows.Count).End(xlUp)).Resize(, 2).Value
ReDim Kq(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
a = Arr(i, 1): b = Arr(i, 2)
If a > 0 Or b > 0 Then
Kq(i, 1) = a * b
End If
Next
ws.Range("C2").Resize(UBound(Kq), 1) = Kq
End If
Next ws
End Sub
Em chưa biết file của Chủ topic như thế nào. Nhưng mà em thấy gán số chết như vậy thể nào cũng phát sinh mấy bài nữa. Mặc dù mảng sẽ nhanh hơn. Nhưng chưa biết nhà họ sẽ làm gì tiếp theo nữa ạGiả sử Sheet1 và Sheet2 là 2 Sheet bạn cần gán kết quả.Bạn thử:
PHP:Sub Test() Dim i As Integer Dim Arr(), Kq() Dim a As Double, b As Double Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name = "Sheet1" Or ws.Name = "Sheet2" Then Arr = ws.Range("A2", ws.Range("A" & Rows.Count).End(xlUp)).Resize(, 2).Value ReDim Kq(1 To UBound(Arr), 1 To 1) For i = 1 To UBound(Arr) a = Arr(i, 1): b = Arr(i, 2) If a > 0 Or b > 0 Then Kq(i, 1) = a * b End If Next ws.Range("C2").Resize(UBound(Kq), 1) = Kq End If Next ws End Sub
Tks bạn, mình cũng đang kiểm tra và cũng bị như bạn nói.Em chưa biết file của Chủ topic như thế nào. Nhưng mà em thấy gán số chết như vậy thể nào cũng phát sinh mấy bài nữa. Mặc dù mảng sẽ nhanh hơn. Nhưng chưa biết nhà họ sẽ làm gì tiếp theo nữa ạ
Dạ. Em và các anh ý sợ nhất môn xem bói hi hiTks bạn, mình cũng đang kiểm tra và cũng bị như bạn nói.
Mình sẽ đưa ra 1 cái điều kiện nữa, để nó ko tính thứ ko cần
Dóc. Gõ cả đống code chỉ để đáp ứng một ý tưởng thử nghiệm mà bảo là "sợ".Dạ. Em và các anh ý sợ nhất môn xem bói hi hi