phucnguyen1993
Thành viên mới
- Tham gia
- 20/11/18
- Bài viết
- 48
- Được thích
- 7
Dùng VBA không.Dear các anh/chị, em có file mẫu như bên dưới,
Số liệu khá nhiều nên copy bằng tay khá lâu,
Có phương pháp nào để tách dữ liệu từ 1 ô ra nhiều ô như file không ạ.
Nhờ các Pro giúp đỡ, em xin cám ơn ạ
dạ miễn ra được kết quả là được bác snow25.Dùng VBA không.
Bạn cho cái file mà có nhiều dữ liệu cần lấy đây.Mình viết luôn 1 thể có 1 cái viêt về bạn chưa chắc đã sửa được.dạ miễn ra được kết quả là được bác snow25.
Em cám ơn a
Bạn thử:Dear các anh/chị, em có file mẫu như bên dưới,
Số liệu khá nhiều nên copy bằng tay khá lâu,
Có phương pháp nào để tách dữ liệu từ 1 ô ra nhiều ô như file không ạ.
Nhờ các Pro giúp đỡ, em xin cám ơn ạ
Sub Tam()
Dim i, a
a = Split(Range("B1"), ",")
For i = LBound(a) To UBound(a)
Cells(3, 2).Offset(i) = a(i)
Next
End Sub
dạ cám ơn bác, mình sử dụng được rồi ạBạn thử:
PHP:Sub Tam() Dim i, a a = Split(Range("B1"), ",") For i = LBound(a) To UBound(a) Cells(3, 2).Offset(i) = a(i) Next End Sub
hi dạ mình cám ơn bác Snow nhé, mình sử dụng của bác phulien1902 ok rồi ạ.Bạn cho cái file mà có nhiều dữ liệu cần lấy đây.Mình viết luôn 1 thể có 1 cái viêt về bạn chưa chắc đã sửa được.
Em muốn làm bài này với 0 vòng lặp.Bạn thử:
PHP:Sub Tam() Dim i, a a = Split(Range("B1"), ",") For i = LBound(a) To UBound(a) Cells(3, 2).Offset(i) = a(i) Next End Sub
Thử kiểu này coi sao, chưa hề dùng bao giờ.Em muốn làm bài này với 0 vòng lặp.
Public Sub sGpe()
Dim Tmp
Tmp = Split(Range("B1"), ", ")
Range("C3").Resize(UBound(Tmp) + 1) = Application.Transpose(Tmp)
End Sub
Em lót dép hóng.Em muốn làm bài này với 0 vòng lặp.
Trình độ em cũng chỉ cỡ đó thôi anh ơi. Anh ra tay cho em học hỏi thêm với.Chưa đạt anh ơi. 256 ký tự là dừng ngay.
Em theo bài #5 mà anhTrình độ em cũng chỉ cỡ đó thôi anh ơi. Anh ra tay cho em học hỏi thêm với.
Sub transpose1D(ByVal arr As Variant, ByRef result As Variant)
'arr is array 1D '
'result is array 2D '
Static i As Long
Static flag As Boolean
If flag = False Then
ReDim result(1 To UBound(arr) - LBound(arr) + 1, 1 To 1)
flag = True
i = LBound(arr)
End If
If i <= UBound(arr) Then
result(i + 1, 1) = arr(i)
i = i + 1
transpose1D arr, result
Else
i = 0
flag = False
End If
End Sub
'//
Sub vidu()
Dim arr, res
arr = Array(1, 2, 3)
transpose1D arr, res
MsgBox res(2, 1)
End Sub
Em muốn làm bài này với 0 vòng lặp.
Dạ thưa, em muốn làm tương tự như #1, tuy nhiên ô chứ dữ liệu ở cột B, Các ô dữ liệu con ở các cột:C,D,E... thì làm thế nào ạ ?Bạn thử:
PHP:Sub Tam() Dim i, a a = Split(Range("B1"), ",") For i = LBound(a) To UBound(a) Cells(3, 2).Offset(i) = a(i) Next End Sub
Bạn thử:Dạ thưa, em muốn làm tương tự như #1, tuy nhiên ô chứ dữ liệu ở cột B, Các ô dữ liệu con ở các cột:C,D,E... thì làm thế nào ạ ?
Sub Test()
Dim Cll As Range, St
For Each Cll In Range("B1", Range("B" & Rows.Count).End(3))
If InStr(Cll, ",") > 0 Then
St = Split(Cll, ",")
Cll.Offset(, 2).Resize(, UBound(St) + 1) = St
End If
Next
End Sub
Tìm hiểu về Text to Columns (trên Ribbon vào data > Text to Columns)Dạ thưa, em muốn làm tương tự như #1, tuy nhiên ô chứ dữ liệu ở cột B, Các ô dữ liệu con ở các cột:C,D,E... thì làm thế nào ạ ?