Nhờ anh, chị hỗ trợ (tạo vòng lập tách chuỗi)

Liên hệ QC

hoangminh2018

Thành viên chính thức
Tham gia
31/10/18
Bài viết
58
Được thích
4
Anh, chị giúp em tạo vòng lập để tách chuỗi này.
Cái này em tự coi trên mạng rồi làm theo (em mới tập làm quen vói VBA)
nhưng thầy trên mạng chỉ dạy làm có 1 dòng ah, nhờ anh chị làm tiếp giúp.
Thanks
 

File đính kèm

  • tach chuoi.xlsm
    16.7 KB · Đọc: 18
Thử vòng for
Mã:
Sub tachchuoi2()
    Dim lr As Long, i As Long
    Dim temp, k As Long
     With Sheets("Sheet1")
             lr = .Range("A" & Rows.Count).End(xlUp).Row
             For i = 2 To lr
                If Cells(i, 1).Value <> "" Then
                    temp = Split(Cells(i, 1).Value, " ")
                    k = UBound(temp)
                    .Range("B" & i).Resize(, k + 1) = temp
                End If
            Next
    End With
End Sub
 
Upvote 0
Anh, chị giúp em tạo vòng lập để tách chuỗi này.
Cái này em tự coi trên mạng rồi làm theo (em mới tập làm quen vói VBA)
nhưng thầy trên mạng chỉ dạy làm có 1 dòng ah, nhờ anh chị làm tiếp giúp.
Cảm ơn
Mình chỉ sưu tầm thôi nha. Đừng hỏi gì thêm. Giựn ấy
 

File đính kèm

  • tach chuoi.xlsm
    21.2 KB · Đọc: 17
Upvote 0
Mình chỉ sưu tầm thôi nha. Đừng hỏi gì thêm. Giựn ấy
Thanks bạn
Bài đã được tự động gộp:

Thử vòng for
Mã:
Sub tachchuoi2()
    Dim lr As Long, i As Long
    Dim temp, k As Long
     With Sheets("Sheet1")
             lr = .Range("A" & Rows.Count).End(xlUp).Row
             For i = 2 To lr
                If Cells(i, 1).Value <> "" Then
                    temp = Split(Cells(i, 1).Value, " ")
                    k = UBound(temp)
                    .Range("B" & i).Resize(, k + 1) = temp
                End If
            Next
    End With
End Sub
Cảm ơn anh.
Bài đã được tự động gộp:

Cảm ơn bạn
Bài đã được tự động gộp:


Cảm ơn anh.
Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
Bài đã được tự động gộp:

Thử vòng for
Mã:
Sub tachchuoi2()
    Dim lr As Long, i As Long
    Dim temp, k As Long
     With Sheets("Sheet1")
             lr = .Range("A" & Rows.Count).End(xlUp).Row
             For i = 2 To lr
                If Cells(i, 1).Value <> "" Then
                    temp = Split(Cells(i, 1).Value, " ")
                    k = UBound(temp)
                    .Range("B" & i).Resize(, k + 1) = temp
                End If
            Next
    End With
End Sub
Cảm ơn anh
Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
 
Lần chỉnh sửa cuối:
Upvote 0
Anh, chị giúp em tạo vòng lập để tách chuỗi này.
Cái này em tự coi trên mạng rồi làm theo (em mới tập làm quen vói VBA)
nhưng thầy trên mạng chỉ dạy làm có 1 dòng ah, nhờ anh chị làm tiếp giúp.
Cảm ơn
đây nhé phần tiếp theo của bạn
Mã:
Sub tachchuoi()
    Dim mixcode As String
    Dim t As Integer
    Dim n1&, n2&
    Dim i&, j&
    
    For i = 2 To 4
    mixcode = Sheets("sheet1").Cells(i, 1).Value & " "
    j = 1
    n1 = 1
    n2 = 1
    
    While n2 > 0
        n2 = InStr(n1, mixcode, " ")
        If n2 > 0 Then
        t = Mid(mixcode, n1, n2 - n1)
        j = j + 1
        
        Sheets("sheet1").Cells(i, j).Value = t
        n1 = n2 + 1
        End If
    Wend
   Next i
    
End Sub
 
Upvote 0
Cảm ơn bạn
Bài đã được tự động gộp:


Cảm ơn anh.
Bài đã được tự động gộp:


Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
Bài đã được tự động gộp:


Cảm ơn anh
Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
Dùng cái có sẵn nhẹ tựa lông hồng
 
Upvote 0
đây nhé phần tiếp theo của bạn
Mã:
Sub tachchuoi()
    Dim mixcode As String
    Dim t As Integer
    Dim n1&, n2&
    Dim i&, j&
   
    For i = 2 To 4
    mixcode = Sheets("sheet1").Cells(i, 1).Value & " "
    j = 1
    n1 = 1
    n2 = 1
   
    While n2 > 0
        n2 = InStr(n1, mixcode, " ")
        If n2 > 0 Then
        t = Mid(mixcode, n1, n2 - n1)
        j = j + 1
       
        Sheets("sheet1").Cells(i, j).Value = t
        n1 = n2 + 1
        End If
    Wend
   Next i
   
End Sub
Code này nhìn quen quen quá!!!
 
Upvote 0
Cảm ơn bạn
Bài đã được tự động gộp:


Cảm ơn anh.
Bài đã được tự động gộp:


Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
Bài đã được tự động gộp:


Cảm ơn anh
Anh ơi bây giờ mình muốn ở đoạn thứ 2 của môi dòng ma 2 (2015 hay 2016) được đỏi thành 1990 thì mình làm sao anh.
đây nhé em
Mã:
Sub tachchuoi2()
    Dim lr As Long, i As Long
    Dim temp, k As Long
     With Sheets("Sheet1")
             lr = .Range("A" & Rows.Count).End(xlUp).Row
             For i = 2 To lr
                If Cells(i, 1).Value <> "" Then
                    temp = Split(Cells(i, 1).Value, " ")
                    k = UBound(temp)
                    temp(1) = "1900"
                    .Range("B" & i).Resize(, k + 1) = temp
                End If
            Next
    End With
End Sub
 
Upvote 0
Theo bài #8, có khi nào Ubound(temp)=0 không nhỉ?
 
Upvote 0
đây nhé phần tiếp theo của bạn
Mã:
Sub tachchuoi()
    Dim mixcode As String
    Dim t As Integer
    Dim n1&, n2&
    Dim i&, j&
   
    For i = 2 To 4
    mixcode = Sheets("sheet1").Cells(i, 1).Value & " "
    j = 1
    n1 = 1
    n2 = 1
   
    While n2 > 0
        n2 = InStr(n1, mixcode, " ")
        If n2 > 0 Then
        t = Mid(mixcode, n1, n2 - n1)
        j = j + 1
       
        Sheets("sheet1").Cells(i, j).Value = t
        n1 = n2 + 1
        End If
    Wend
   Next i
   
End Sub
Cảm ơn anh
Bài đã được tự động gộp:

đây nhé em
Mã:
Sub tachchuoi2()
    Dim lr As Long, i As Long
    Dim temp, k As Long
     With Sheets("Sheet1")
             lr = .Range("A" & Rows.Count).End(xlUp).Row
             For i = 2 To lr
                If Cells(i, 1).Value <> "" Then
                    temp = Split(Cells(i, 1).Value, " ")
                    k = UBound(temp)
                    temp(1) = "1900"
                    .Range("B" & i).Resize(, k + 1) = temp
                End If
            Next
    End With
End Sub
Cảm ơn anh.
 
Upvote 0
Sao không ai dùng Text To Columns vậy ta? Chẳng hạn:
Mã:
Sub Test()
  Application.DisplayAlerts = False
  Range("A2:A100").TextToColumns Range("B2:B100"), xlDelimited, , , , , , True, , , Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2))
  Application.DisplayAlerts = True
End Sub
Muốn đổi 2015, 2016 gì gì đó thành 1900, ta dùng Find and Replace cũng chỉ 1 dòng code là xong
 
Upvote 0
Sao không ai dùng Text To Columns vậy ta? Chẳng hạn:
Mã:
Sub Test()
  Application.DisplayAlerts = False
  Range("A2:A100").TextToColumns Range("B2:B100"), xlDelimited, , , , , , True, , , Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2))
  Application.DisplayAlerts = True
End Sub
Muốn đổi 2015, 2016 gì gì đó thành 1900, ta dùng Find and Replace cũng chỉ 1 dòng code là xong
em cảm ơn nhưng thật tình là em không biết dùng Find and Replace, thầy có thể hướng dẫn cho em không.
 
Upvote 0
Web KT
Back
Top Bottom