Xin giúp về vấn đề Chèn thêm dòng trong EXCEL?

Liên hệ QC

sunshine1410

Thành viên chính thức
Tham gia
18/4/09
Bài viết
79
Được thích
1
Mình muốn chèn trong EXCEL như sau :
1
2
3
4
5
6

Giữa các dòng 1,2,3,4,5,6 mình muốn chèn ngang vào 2 dòng trắng như thế này :
1


2


3


4


5


6
Vì trong file mình cần làm đến mấy chục nghìn dòng,mình không thể ngồi chèn từng dòng được. Xin các bạn giúp mình .

file ví dụ ở đây, các bạn giúp
http://www.mediafire.com/view/?yl2i2hydkrbus4v
 
Lần chỉnh sửa cuối:
Mình muốn chèn trong EXCEL như sau :
1
2
3
4
5
6

Giữa các dòng 1,2,3,4,5,6 mình muốn chèn ngang vào 2 dòng trắng như thế này :
1


2


3


4


5


6
Vì trong file mình cần làm đến mấy chục nghìn dòng,mình không thể ngồi chèn từng dòng được. Xin các bạn giúp mình .
Mấy chục ngàn thì mấy chục ngàn, nhưng phải thấy dữ liệu nó như thế nào mới dùng VBA xử nó được.
Bạn gởi file giống thật lên nhưng khoảng vài chục dòng thôi.
 
Mình muốn chèn trong EXCEL như sau :
1
2
3
4
5
6

Giữa các dòng 1,2,3,4,5,6 mình muốn chèn ngang vào 2 dòng trắng như thế này :
1


2


3


4


5


6
Vì trong file mình cần làm đến mấy chục nghìn dòng,mình không thể ngồi chèn từng dòng được. Xin các bạn giúp mình .

Bạn tạo 1 cột số thứ tự, sau đó copy riêng cột thứ tự thêm 2 lần dán vào phía dưới. Tiếp theo là sort dữ liệu theo cột này là được
 
Nhờ Mod xóa giúp bài này (đã viết lại bài dưới)
 
Lần chỉnh sửa cuối:
Bạn giúp mình nhé, ví dụ ở đây, làm sao chèn vào 2 dòng trắng như mình mô tả ở trên
http://www.mediafire.com/view/?yl2i2hydkrbus4v
Nếu bạn biết cách xài code thì đây là 1 phương án.

PHP:
Sub chendong()
Dim data(), kq()
Dim dongchenthem As Long, socot As Long, j As Long, i As Long, k As Long
socot = 2: dongchenthem = 2: k = 1
data = Range([A1], [A65536].End(3)).Resize(, socot).Value
ReDim kq(1 To UBound(data) * (dongchenthem + 1), 1 To socot)
For i = 1 To UBound(data)
   For j = 1 To socot
      kq(k, j) = data(i, j)
   Next
   k = k + dongchenthem + 1
Next
[A1].Resize(k - 1, socot) = kq
End Sub
 
Lần chỉnh sửa cuối:
Mấy chục ngàn dòng, sau khi nhân 3 thành ra hăng trăm ngàn dòng? Thiết kế kiểu gì ác dức vậy?

- Lập thêm sheet mới, ví dụ Sheet2, để copy dữ liệu từ Sheet1
- Công thức trong ô A1 của Sheet2 : = IF(MOD(ROW(),3)=1,OFFSET(Sheet1!$A1,TRUNC(ROW()/3),0,1,[số cột cần chép]),"")
- Kéo công thức cho đủ Nx3 dòng
- Copy tất cả dữ liệu Sheet2
- Paste lại value

Giải thích:
- hàm MOD tính ra các dòng 1, 4, 7, ... để chép dứ liệu, các dòng khác để trống
- hàm OFFSET tính ra dòng tường ứng để chép từ Sheet1
- [số cột cần chép] : thế số cần thiết vào

==== Bổ sung 08-04-2013 11:00am ====

Công thức trên gõ sai một chút ở ô truy chiếu

Chỉnh lại là $A$1 thay vì $A1

= IF(MOD(ROW(),3)=1,OFFSET(Sheet1!$A$1,TRUNC(ROW()/3),0,1,[số cột cần chép]),"")

-- bổ sung lần nữa: --
Dùng [số cột cần chép] thì nó phải là công thức mảng, CSE
 
Lần chỉnh sửa cuối:
Cám ơn tất cả các bạn, mình sẽ nghiên cứu các cách mà các bạn giúp, nhưng riêng sử dụng code mình chưa sử dụng bao giờ, vào đâu để add code vậy nhỉ?
 

File đính kèm

Mấy chục ngàn dòng, sau khi nhân 3 thành ra hăng trăm ngàn dòng? Thiết kế kiểu gì ác dức vậy?

- Lập thêm sheet mới, ví dụ Sheet2, để copy dữ liệu từ Sheet1
- Công thức trong ô A1 của Sheet2 : = IF(MOD(ROW(),3)=1,OFFSET(Sheet1!$A1,TRUNC(ROW()/3),0,1,[số cột cần chép]),"")
- Kéo công thức cho đủ Nx3 dòng
- Copy tất cả dữ liệu Sheet2
- Paste lại value

Giải thích:
- hàm MOD tính ra các dòng 1, 4, 7, ... để chép dứ liệu, các dòng khác để trống
- hàm OFFSET tính ra dòng tường ứng để chép từ Sheet1
- [số cột cần chép] : thế số cần thiết vào

Mình thử cách của bạn mà không được, nó lại copy ra dạng 1 5 9 13, nếu mình thay các dòng bằng số thứ tự 1 2 3...
 
Nếu bạn biết cách xài code thì đây là 1 phương án.

PHP:
Sub chendong()
Dim data(), kq()
Dim dongchenthem As Long, socot As Long, j As Long, i As Long, k As Long
socot = 2: dongchenthem = 2: k = 1
data = Range([A1], [A65536].End(3)).Resize(, socot).Value
ReDim kq(1 To UBound(data) * (dongchenthem   1), 1 To socot)
For i = 1 To UBound(data)
   For j = 1 To socot
      kq(k, j) = data(i, j)
   Next
   k = k   dongchenthem   1
Next
[A1].Resize(k - 1, socot) = kq
End Sub

Bạn ơi giúp mình sửa lại code trên theo cách chèn một dòng trắng vào sau dòng đã có được không, code này mình thấy nó copy giá trị của dòng trên xuống thì phải. Mình cần chèn một dòng trắng vào bảng tính.
Thanks
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom