Tự động chèn 1 dòng trống trong 1 cell

Liên hệ QC

giaosucan

Thành viên hoạt động
Tham gia
6/7/12
Bài viết
117
Được thích
1
Chào các bác em có 1 cell gồm các dòng như sau

1.Line 1
2.Line 2
3.Line 3

Em muốn chèn 1 dòng trống vào dòng cuối cùng (3.Line 3) này, ko biết phải làm thế nào ạ
Em ko thể làm thủ công dc vì file của em có hàng nghìn ô cần chèn dòng trống thế này
thank các bác ạ
 
Cái này chắc phải dùng tới VBA bạn ạ.
 
Chào các bác em có 1 cell gồm các dòng như sau

1.Line 1
2.Line 2
3.Line 3

Em muốn chèn 1 dòng trống vào dòng cuối cùng (3.Line 3) này, ko biết phải làm thế nào ạ
Em ko thể làm thủ công dc vì file của em có hàng nghìn ô cần chèn dòng trống thế này
thank các bác ạ

ví dụ ô dữ liệu là A1

Thì tại ô kết quả bạn dùng công thức này:
=A1&CHAR(10)

sau đó nhớ format cell (ô) kết quả là Wraptext nhé, là được
 
Mã:
Sub chendong()Dim t As Long
t = Range("A56636").End(xlUp).Row
Rows(t).Insert Shift:=xlDown
End Sub
Bạn dùng code này nhé.
Alt+F8--> chọn chèn dòng--> rung
 
Mã:
Sub chendong()Dim t As Long
t = Range("A56636").End(xlUp).Row
Rows(t).Insert Shift:=xlDown
End Sub
Bạn dùng code này nhé.
Alt+F8--> chọn chèn dòng--> rung
Bạn xem kỹ yêu cầu lại xem:
Chào các bác em có 1 cell gồm các dòng như sau

1.Line 1
2.Line 2
3.Line 3


Em muốn chèn 1 dòng trống vào dòng cuối cùng (3.Line 3) này, ko biết phải làm thế nào ạ
Em ko thể làm thủ công dc vì file của em có hàng nghìn ô cần chèn dòng trống thế này
thank các bác ạ
Hình như là trong 1 Cell có 3 dòng, thêm 1 dòng trống thành 4 dòng đấy.
(Bạn ấy hỏi trong box Xử lý chuỗi ký tự)
 
Bạn thử với macro xem sao, nha!

Em làm được rồi ạ, nhân tiện cho em hỏi nếu xoá dòng trống thì phải làm sao ạ

PHP:
Sub XoaCHR10()
 Dim Rng As Range, Cls
  
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    If Right(Cls.Value, 1) = Chr(10) Then
        With Cls
            .Value = Left(.Value, Len(.Value) - 1)
        End With
    End If
 Next Cls
End Sub

Sẵn giới thiệu bạn tham khảo cách thêm CHR(10) vô dữ liệu trong ô:

Mã:
[B]Sub AddCHR10()[/B]
Dim Rng As Range, Cls
 
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    Cls.Value = Cls.Value & Chr(10)
 Next Cls
[B]End Sub[/B]
 
PHP:
Sub XoaCHR10()
 Dim Rng As Range, Cls
  
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    If Right(Cls.Value, 1) = Chr(10) Then
        With Cls
            .Value = Left(.Value, Len(.Value) - 1)
        End With
    End If
 Next Cls
End Sub

Sẵn giới thiệu bạn tham khảo cách thêm CHR(10) vô dữ liệu trong ô:

Mã:
[B]Sub AddCHR10()[/B]
Dim Rng As Range, Cls
 
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    Cls.Value = Cls.Value & Chr(10)
 Next Cls
[B]End Sub[/B]


Thank bác cách này rất hay,cái này có thể cải tiến bằng cách thêm hay xóa bất kì 1 text nào cũng dc nhỉ
 
PHP:
Sub XoaCHR10()
 Dim Rng As Range, Cls
  
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    If Right(Cls.Value, 1) = Chr(10) Then
        With Cls
            .Value = Left(.Value, Len(.Value) - 1)
        End With
    End If
 Next Cls
End Sub

Sẵn giới thiệu bạn tham khảo cách thêm CHR(10) vô dữ liệu trong ô:

Mã:
[B]Sub AddCHR10()[/B]
Dim Rng As Range, Cls
 
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 3)
 For Each Cls In Rng
    Cls.Value = Cls.Value & Chr(10)
 Next Cls
[B]End Sub[/B]

Thank bác code này có thể xóa dòng trống ở cuối cùng
Cỏ thể cải tiến để xóa dòng trống ở vị trí bất kì trong ô ko bác
VD như

Line 1


Line 2
Line 3

Cấn xóa dòng trống giữa Line 1 và Line 2 trong 1 cell chẳng hạn
 
(/ấn đề còn là:

Code này xóa dòng trống ở cuối cùng;
Cỏ thể cải tiến để xóa dòng trống ở vị trí bất kì trong ô ko bác
VD như

Line 1


Line 2
Line 3

Cấn xóa dòng trống giữa Line 1 và Line 2 trong 1 cell chẳng hạn

Bạn muốn xoá dòng trống thứ bao nhiêu trong ô cũng được. Miễn là dòng thứ bao nhiêu đó có tồn tại trong ô.

2 Trờng hợp xóa dòng trống đầu tiên & cuối cùng trong ô thì chỉ là macro trên;
Bằng ngược lại ta dùng hàm InStr() trong VBA để ngỏ hầu xác định vị trí CHR(10) cần xóa mà thôi.

Ví dụ để xóa đi dòng trống thứ 2 trong ô, ta thiết lập vòng lặp For. . . Next để xác định

PHP:
 Dim Vtr As Byte, Lan As Byte, Jj As Byte, MyStr As String

 VTr=1
 For Jj = 1 to 99
    If InStr(VTr , Cls.Value,CHR(10)) Then
        VTr  = InStr(VTr , Cls.Value,CHR(10)) + 1:    Lan = Lan +1
        If Lan = 2 Then
            MyStr=  Left( Cls.Value, Vtr -1) & Mid(Cls.Value,Vtr+1,99)     
            Exit For
        End If
    End If
 Next Jj
. . . . .
 
Trong trường hợp này dòng trắng có thể nằm ở bất kì vị trí nào, e nghĩ excel phải search dc dòng trắng để del nó đi chứ nhỉ ?
 
Trong trường hợp này dòng trắng có thể nằm ở bất kì vị trí nào, e nghĩ excel phải search dc dòng trắng để del nó đi chứ nhỉ ?
Có phải bạn muốn xoá thế này
Chọn vùng cần xoá trước khi run code
PHP:
Sub xoa_xuongdong()
Dim cell
For Each cell In Selection
  cell.Replace ChrW(10) & ChrW(10), ChrW(10)
  If Right(cell, 1) = ChrW(10) Then
    cell.Value = Left(cell, Len(cell) - 1)
  End If
Next cell
End Sub
 
Có phải bạn muốn xoá thế này
Chọn vùng cần xoá trước khi run code
PHP:
Sub xoa_xuongdong()
Dim cell
For Each cell In Selection
  cell.Replace ChrW(10) & ChrW(10), ChrW(10)
  If Right(cell, 1) = ChrW(10) Then
    cell.Value = Left(cell, Len(cell) - 1)
  End If
Next cell
End Sub

Em có thử nhưng hình như hàm này chỉ xóa dòng trắng cuối cùng và cũng ko xóa hết

Tức là em có 1 cell kiểu như

Line 1
Dòng trắng
Dòng trắng
Line 2
Dòng trắng
Line 3
Dòng trắng
...
Line n

Em muốn del hết toàn bộ dòng trắng trên .
Thank bác ạ
 
Lần chỉnh sửa cuối:
Em có thử nhưng hình như hàm này chỉ xóa dòng trắng cuối cùng và cũng ko xóa hết

Tức là em có 1 cell kiểu như

Line 1
Dòng trắng
Dòng trắng
Line 2
Dòng trắng
Line 3
Dòng trắng
...
Line n

Em muốn del hết toàn bộ dòng trắng trên .
Thank bác ạ

Thật ra nếu bạn chịu khó đọc code thì đã biết cách sửa lại cho phù hợp với yêu cầu của bạn.

PHP:
Sub xoa_xuongdong()
Dim cell
For Each cell In Selection
  cell.Replace ChrW(10) & ChrW(10) & ChrW(10) & ChrW(10), ChrW(10)
  cell.Replace ChrW(10) & ChrW(10) & ChrW(10), ChrW(10)
  cell.Replace ChrW(10) & ChrW(10), ChrW(10)
  If Right(cell, 1) = ChrW(10) Then
    cell.Value = Left(cell, Len(cell) - 1)
  End If
Next cell
End Sub
 
sao các ban deuf nói khó the cách đơn giản là bôi đen dòng đó và dùng phím ctrl+shift và dấu + vậy là song
 
Có phải bạn muốn xoá thế này
Chọn vùng cần xoá trước khi run code
PHP:
Sub xoa_xuongdong()
Dim cell
For Each cell In Selection
  cell.Replace ChrW(10) & ChrW(10), ChrW(10)
  If Right(cell, 1) = ChrW(10) Then
    cell.Value = Left(cell, Len(cell) - 1)
  End If
Next cell
End Sub
Bác ơi, em đang làm một cái bảng mà nội dung của cũng có tính tương tự. VD như sau :
Một cell chứa nội dung văn bảng mô tả, gồm nhiều dòng và đã có alt + enter xuống dòng khi liệt kê hoặc mô tả.
Vì khi in ra nó nhảy trang và mất trang nhiều do cell kết thúc chưa đủ trang cũng như trang in ra không tràn đều giấy.
Em muốn tách mỗi cái alt+enter trong cell ban đầu thành một cell riêng nên dưới nhưng vẫn giữ nội dung cũng như khoảng cách lề để có thể thuận lợi và đẹp trong in ấn.
Cái này chỉ có VBA mới làm được, những cái đơn giản em tự xử được nhưng cái này hơi căng với em.
Rất cám ơn bác đã đọc.
 
Bác ơi, em đang làm một cái bảng mà nội dung của cũng có tính tương tự. VD như sau :
Một cell chứa nội dung văn bảng mô tả, gồm nhiều dòng và đã có alt + enter xuống dòng khi liệt kê hoặc mô tả.
Vì khi in ra nó nhảy trang và mất trang nhiều do cell kết thúc chưa đủ trang cũng như trang in ra không tràn đều giấy.
Em muốn tách mỗi cái alt+enter trong cell ban đầu thành một cell riêng nên dưới nhưng vẫn giữ nội dung cũng như khoảng cách lề để có thể thuận lợi và đẹp trong in ấn.
Cái này chỉ có VBA mới làm được, những cái đơn giản em tự xử được nhưng cái này hơi căng với em.
Rất cám ơn bác đã đọc.
Gởi file lên đi, nói không khó xử lý lắm
 
ví dụ file đính kèm, từ bảng a chuyển thành bảng b

1 cột tách ra, rồi 1 cột trộn lại có khác gì nhau đâu và cũng khó quá xá vì 1 bên tách ra được 3 dòng nhưng bên cột kia lại trộn lại 4 dòng. Dữ liệu thì chỉ có 1 dòng ai biết dữ liêu thật của bạn thế nào mà viết code
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom