Công thức nhân vba excel

.Option

Thành viên mới
Tham gia ngày
30 Tháng chín 2020
Bài viết
8
Được thích
2
Điểm
15
Tuổi
31
Giả 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.
 

Cu Tồ

Tìm đến kiến thức!
Tham gia ngày
6 Tháng năm 2020
Bài viết
269
Được thích
89
Điểm
45
Giả 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.
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
 
Lần chỉnh sửa cuối:

.Option

Thành viên mới
Tham gia ngày
30 Tháng chín 2020
Bài viết
8
Được thích
2
Điểm
15
Tuổi
31
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
Cám ơn Cuto nhé
 

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,530
Được thích
4,401
Điểm
560
Nơi ở
Hải Phòng
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
 

PacificPR

Thành viên mới
Tham gia ngày
6 Tháng năm 2016
Bài viết
1,966
Được thích
2,682
Điểm
360
Nơi ở
Cái Bang
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
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 ạ
 

.Option

Thành viên mới
Tham gia ngày
30 Tháng chín 2020
Bài viết
8
Được thích
2
Điểm
15
Tuổi
31
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 ạ
Tks 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
 

.Option

Thành viên mới
Tham gia ngày
30 Tháng chín 2020
Bài viết
8
Được thích
2
Điểm
15
Tuổi
31
chào các bạn.
bạn ấy nhiệt tình là điều tuyệt vời rồi. Và đáp ứng với câu hỏi của mình.
Nếu làm sẵn cho mình thì cũng được.
Nhưng mình tự áp dụng để mình sẽ biết được lỗi sai ở đâu để mình chú ý.
theo mình làm sẵn file cho mình rồi, có khi nó sai ở đâu mình cg ko biết.
cám ơn sự nhiệt tình của mn.
vba mình gà mờ, mình đọc hiểu chứ ko tự viết ra đc.
 
Top Bottom