Nhờ sửa code

  • Thread starter heyhey1994
  • Ngày gửi
H

heyhey1994

Guest
6/3/17
6
1
3
30
Em viết đoạn code thế này mà chạy nó thông báo: next without for. Anh chị nào biết sửa giúp em với ạ

Public Sub chaymm()
Dim i, j, k As Integer
k = WorksheetFunction.counta(Range("A:A")) + 1
For i = 4 To 100

If (Cells(i + 1, 1).Value = Cells(i, 1).Value) And (Cells(i + 1, 2).Value = Cells(i, 2).Value) And (Cells(i + 1, 11).Value > Cells(i, 11).Value) Then
Sheets("Sheet1").Cells(j, 3).Value = (Cells(i + 1, 11).Value)

If (Cells(i + 1, 1).Value = Cells(i, 1).Value) And (Cells(i + 1, 2).Value = Cells(i, 2).Value) And (Cells(i + 1, 11).Value < Cells(i, 11).Value) Then
Sheets("Sheet1").Cells(j, 3).Value = (Cells(i, 11).Value)

If (Cells(i + 1, 1).Value = Cells(i, 1).Value) And (Cells(i + 1, 2).Value <> Cells(i, 2).Value) Then
j = j + 1
Sheets("Sheet1").Cells(j, 1).Value = (Cells(i, 1).Value)
Sheets("Sheet1").Cells(j, 2).Value = (Cells(i, 2).Value)
Sheets("Sheet1").Cells(j, 3).Value = (Cells(i, 11).Value)

If (Cells(i + 1, 1).Value <> Cells(i, 1).Value) And (Cells(i + 1, 2).Value <> Cells(i, 2).Value) Then
j = j + 1
Sheets("Sheet1").Cells(j, 1).Value = (Cells(i, 1).Value)
Sheets("Sheet1").Cells(j, 2).Value = (Cells(i, 2).Value)
Sheets("Sheet1").Cells(j, 3).Value = (Cells(i, 11).Value)
End If
Next i
End Sub
 
Khóa học Quản trị dòng tiền
QDuc

QDuc

Cao cấp
3/6/06
254
18
18
Biển khơi
Bạn đang thiếu 3 dòng lệnh
Mã:
 End If
 
H

heyhey1994

Guest
6/3/17
6
1
3
30
dạ em cảm ơn ạ. Bây giờ em có 1 vấn đề muốn hỏi nữa là có 4 loại số Bx0y00, Bx00y00, Bx00y0, Bx0y0 như thế này thì viết code thế nào để nó tách thành 2 cột, 1 cột x..., 1 cột y... ví dụ B50600 thì thành 1 cột 50, 1 cột 600 còn b70020 thì thành 700,20. Em nghĩ mãi mà vẫn chưa có ý tưởng ạ.
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
dạ em cảm ơn ạ. Bây giờ em có 1 vấn đề muốn hỏi nữa là có 4 loại số Bx0y00, Bx00y00, Bx00y0, Bx0y0 như thế này thì viết code thế nào để nó tách thành 2 cột, 1 cột x..., 1 cột y... ví dụ B50600 thì thành 1 cột 50, 1 cột 600 còn b70020 thì thành 700,20. Em nghĩ mãi mà vẫn chưa có ý tưởng ạ.
Bạn thử đoạn code này nhé
PHP:
Sub splittext()
    Dim a() As Variant
    Dim d As Long
    Dim s&, i&
    d = Len(Range("A2").Value)
    For i = 2 To d
        ReDim Preserve a(i - 2)
        a(i - 2) = Mid(Range("A2").Value, i, 1)
    Next i
    For i = LBound(a) To UBound(a)
        If a(i + 1) > 0 Then
           s = i + 1
            Exit For
        End If
    Next i
    For i = LBound(a) To s - 1
        Range("B2").Value = Range("B2").Value & a(i)
    Next i
    For i = s To UBound(a)
        Range("C2").Value = Range("C2").Value & a(i)
    Next i
End Sub
 
  • Like
Reactions: heyhey1994
H

heyhey1994

Guest
6/3/17
6
1
3
30
Dạ em cảm ơn ạ nhưng hwa em nghĩ ra rồi ạ. Với cell(i,7) là ô giá trị vài cells(i,5) vài i,6 là 2 cột. Chứ code bác em ko hiếu gì hết :D
For i = 4 To k
If Right(Cells(i, 7).Value, 2) > 0 Then
Cells(i, 6).Value = Right(Cells(i, 7).Value, 2)
Else
Cells(i, 6).Value = Right(Cells(i, 7).Value, 3)
End If
Next i

For i = 4 To k
If Mid(Cells(i, 7).Value, 2, 2) = 0 Then
Cells(i, 5).Value = Left(Cells(i, 7).Value, 3)
Else
Cells(i, 5).Value = Left(Cells(i, 7).Value, 2)
End If
Next i
 

Xem nhiều

Webketoan Zalo OA