Sửa code nhiều if thành vòng lập

Liên hệ QC

hungdiep85

Thành viên thường trực
Tham gia
1/6/09
Bài viết
218
Được thích
23
Giới tính
Nam
Chào các Anh Chị

Nếu B2 đến B5 > 0 thì giá trị C2 đến C5 bằng với giá trị ô đó,
Em có dùng hàm if, nhưng em phải dùng đến 5 lần if ,

Có cách nào dùng vòng lập làm gọn code lại không, vì em cần dùng nhiều hơn 5 lần if,

Em xin cảm ơn
 

File đính kèm

Chào các Anh Chị

Nếu B2 đến B5 > 0 thì giá trị C2 đến C5 bằng với giá trị ô đó,
Em có dùng hàm if, nhưng em phải dùng đến 5 lần if ,

Có cách nào dùng vòng lập làm gọn code lại không, vì em cần dùng nhiều hơn 5 lần if,

Em xin cảm ơn
Thử:
PHP:
Sub IF_abc()
    Dim LR&, i&
    With Sheets(1)
        LR = .Range("B" & Rows.Count).End(xlUp).Row
        For i = 2 To LR
            If IsNumeric(.Cells(i, 2)) And .Cells(i, 2).Value > 0 Then
                .Cells(i, 3).Value = .Cells(i, 2).Value
            End If
        Next
    End With
End Sub
 
Upvote 0
Chào các Anh Chị

Nếu B2 đến B5 > 0 thì giá trị C2 đến C5 bằng với giá trị ô đó,
Em có dùng hàm if, nhưng em phải dùng đến 5 lần if ,

Có cách nào dùng vòng lập làm gọn code lại không, vì em cần dùng nhiều hơn 5 lần if,

Em xin cảm ơn
Bạn thử cách này xem
Mã:
Sub FF_1()
Dim i As Integer
With Sheet1
    For i = 2 To 6
        If .Range("b" & i) > 0 Then
            .Range("c" & i) = .Range("b" & i)
        End If
    Next i
End With
End Sub
 
Upvote 0
Da. em xin cảm ơn 2 Anh phulien1902 & CHAOQUAY

cho em xin hỏi chút nữa là, nếu em chỉ muốn code chạy trong vùng B2 đến B5.
thì em sửa như thế nào ạh, vì trong cột B và C em còn nhiều dữ liệu khác nữa,
 
Upvote 0
Da. em xin cảm ơn 2 Anh phulien1902 & CHAOQUAY

cho em xin hỏi chút nữa là, nếu em chỉ muốn code chạy trong vùng B2 đến B5.
thì em sửa như thế nào ạh, vì trong cột B và C em còn nhiều dữ liệu khác nữa,
Bạn dùng:
PHP:
 For i = 2 To 5
 
Upvote 0
Em đã hiểu rồi , Em cảm ơn Anh nhiều ạh

Chúc Anh phulien1902 & CHAOQUAY
1 ngày vui vẽ và hạnh phúc.
 
Upvote 0
Sub PlentyIfs()
Const BATDAU = 2 ' sửa chỗ này
Const KETTHUC = 5 ' sửa chỗ này
Dim rg As Range, doiChieu As Variant
Set rg = Range("C" & BATDAU)
Do While rg.Row <= KETTHUC
doiChieu = rg.Offset(0,-1).Value ' đối chiếu từ C sang B là -1
If IsNumeric(look) Then
If doiChieu > 0 Then rg.Value = doiChieu
End If
Set rg = rg.Offset(1,0)
Loop
End Sub
 
Upvote 0
Sub PlentyIfs()
Const BATDAU = 2 ' sửa chỗ này
Const KETTHUC = 5 ' sửa chỗ này
Dim rg As Range, doiChieu As Variant
Set rg = Range("C" & BATDAU)
Do While rg.Row <= KETTHUC
doiChieu = rg.Offset(0,-1).Value ' đối chiếu từ C sang B là -1
If IsNumeric(look) Then
If doiChieu > 0 Then rg.Value = doiChieu
End If
Set rg = rg.Offset(1,0)
Loop
End Sub

Em Cảm Ơn Anh nhiều lắm.
Chúc Anh Một Ngày Vui Vẽ & Hạnh Phúc.
 
Upvote 0
Đính chính:
Code trên tôi viết vọi cho nên sơ sót chỗ này
If IsNumeric(look) Then
Cần sửa thành
If IsNumeric(doiChieu) Then
 
Upvote 0
Web KT

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

Back
Top Bottom