Tự động chèn 1 dòng trống trong 1 cell (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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:
Cho mình đào mộ tí tại có trường hợp khá giống

1. Line 1
2. Line 2
3. Line 3
4. Line 1
5. Line 2
6. Line 3
.
.
.
Thì sau mỗi line 3 mình mún chèn thếm 3 dòng trắng thì có áp dụng cách trên được không hay ai có cách nào hay hơn chỉ với
 

File đính kèm

Đổi dữ liệu hai ô cùng cột cho nhau (giống như chơi Pikachu)

Em có gặp khó khăn như thế này rất mong mọi người giúp đỡ em có gửi file
Khi clik vào A1 RỒI tiếp đến clik A2 thì dữ liệu trong hai cell này đổi cho nhau; giống như trò chơi Pikachu (nhưng chỉ thực hiện đổi chỗ 2 Ô bất kì cùng 1 cột, ko thực hiện trền hàng) tương tự cho bất kì hai cell ở cùng một cột. em cảm ơn
 

File đính kèm

Chèn dòng(giống như subtotal

Xin được hỏi cách chèn dòng giống như mình Subtotal như thế nào?
dữ liệu đã được sắp xếp theo trình tự, cuối mỗi nhóm tự chèn thêm 1 dòng, và ghi nhớ lại dòng đã chọn thì mình phải làm như thế nào? xin chân thành cảm ơn, tôi có gởi file đính kèm, trong file có bố trí dữ liệu ban đầu và bố trí dữ liệu mong muốn, xin chân thành cảm ơn các thành viên nhiều
 

File đính kèm

Xin được hỏi cách chèn dòng giống như mình Subtotal như thế nào?
dữ liệu đã được sắp xếp theo trình tự, cuối mỗi nhóm tự chèn thêm 1 dòng, và ghi nhớ lại dòng đã chọn thì mình phải làm như thế nào? xin chân thành cảm ơn, tôi có gởi file đính kèm, trong file có bố trí dữ liệu ban đầu và bố trí dữ liệu mong muốn, xin chân thành cảm ơn các thành viên nhiều
Thử code này coi sao.
PHP:
Sub abc()
Dim nguon(), kq(1 To 10000, 1 To 6), i, j, k
nguon = Range([A3], [F65536].End(3).Offset(1)).Value
For i = 1 To UBound(nguon) - 1
    k = k + 1
        For j = 1 To 6
            kq(k, j) = nguon(i, j)
        Next
    If nguon(i, 6) <> nguon(i + 1, 6) Then k = k + 1
Next
[H3].Resize(k, 6) = kq
End Sub
 
Dạ em cảm ơn anh nhiều, em cũng mới làm được. em làm trực tiếp trên mảng luôn
Sub DATA_THONGKE1_1()
Dim Ii, Jj As Byte
Dim Temp As String

Dim Rngs(), Arr(), i As Long, k As Long, y As Long
On Error Resume Next
'With Sheets("Ban the")
With Sheet5
Rngs = .Range(.[A3], .[A60000].End(xlUp)).Resize(, 60).Value
End With
ReDim Arr(1 To UBound(Rngs, 1) + 100, 1 To 40)


For i = 1 To UBound(Rngs, 1)
If (Rngs(i, 1) <> "") Then
k = k + 1
For y = 1 To 37
Arr(k, y) = Rngs(i, y)
Next y

If (Rngs(i, 37) <> Rngs(i + 1, 37) And Rngs(i, 6) <> "") Then
k = k + 1
Arr(k, 31) = "TOTAL"
End If
End If
Next i

Sheet6.Range("A3:AZ100000").ClearContents
If (k > 0) Then
Sheet6.Range("A3").Resize(k, 37).Value = Arr
End If


End Sub
 
Các cao thủ cho em nhờ tí. Em lập Lịch báo giảng theo TKB (căn cứ vào số tiết/môn của ngày). Giả sử em lập hàm đếm số tiết ngày thứ 2 được n tiết thì tự động vùng ngày thứ 2 trong LBG có n dòng. Còn chuyện kẽ vùng ngày thứ 2 cho vừa đủ số tiết ấy là chuyện nhỏ, nhưng số tiết ấy của từng người khác nhau.
 

File đính kèm

Bài viết mới nhất

Back
Top Bottom