hungdiep85
Thành viên thường trực
![](/diendan/data/PhoToDanhHieu/gold.gif)
![](/diendan/data/PhoToDanhHieu/gold.gif)
![](/diendan/data/PhoToDanhHieu/gold.gif)
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 1/6/09
- Bài viết
- 218
- Được thích
- 23
- Giới tính
- Nam
Thử: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
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
Bạn thử cách này xemChà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
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
Bạn dùng: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,
For i = 2 To 5
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