Bỏ gộp ô và copy xuống ô đã gộp

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hoalv1985

Thành viên hoạt động
Tham gia
27/11/17
Bài viết
130
Được thích
20
Giới tính
Nam
Em nhờ anh chị viết hộ em Code VBA: bỏ gộp ô, và tự copy xuống ô đã gộp: Em gửi file có cột Kết quả test: chính là em làm thao tác tay của cột S ( loại bia). Mục đích của em là muốn bỏ gộp ô ở cột S ạ. Em cảm ơn ạ!
 

File đính kèm

  • test.xlsx
    162.1 KB · Đọc: 6
Em nhờ anh chị viết hộ em Code VBA: bỏ gộp ô, và tự copy xuống ô đã gộp: Em gửi file có cột Kết quả test: chính là em làm thao tác tay của cột S ( loại bia). Mục đích của em là muốn bỏ gộp ô ở cột S ạ. Em cảm ơn ạ!
Thực hiện đúng các thao tác dưới đây:
B1: chọn vùng muốn Unmerge ( ở đây là S7:S133)
B2: Nhấn vào Home\Merge & center ( bấm 1 phát thôi)
B3: Nhấn Ctrl + G\Special...\Blanks\
B4: Nhấn F2 và điền =S7
B5: Nhấn Ctrl + Enter
Là được kết quả như mong muốn. Chứ đâu cần cốt két gì đâu
 
Lần chỉnh sửa cuối:
Thực hiện đúng các thao tác dưới đây:
B1: chọn vùng muốn Unmerge ( ở đây là S7:S133)
B2: Nhấn vào Home\Merge & center ( bấm 1 phát thôi)
B3: Nhấn Ctrl + G\Special...\Blanks\
B4: Nhấn F2 và điền =S7
B5: Nhấn Shift + Enter
Là được kết quả như mong muốn. Chứ đâu cần cốt két gì đâu
khi nhấn F2 và điền =S7 nhấn oke, thì chỉ được dòng đầu anh à, các dòng tiếp theo có được đâu anh: Em làm Ctr+G và vào chọn blanks rồi
 
Dùng đỡ cái này nhé...

Mã:
Option Explicit
Sub bogop()
Dim i&, ce As Range
For i = 7 To Cells(Rows.Count, "S").End(xlUp).Row
    Set ce = Cells(i, "S")
    If ce.MergeCells = True Then
        ce.MergeCells = False
    End If
    If IsEmpty(ce) Then ce.Value = ce.Offset(-1, 0).Value
    ce.HorizontalAlignment = xlCenter
Next
End Sub
 

File đính kèm

  • TEST.xlsm
    292.3 KB · Đọc: 2
Dùng đỡ cái này nhé...

Mã:
Option Explicit
Sub bogop()
Dim i&, ce As Range
For i = 7 To Cells(Rows.Count, "S").End(xlUp).Row
    Set ce = Cells(i, "S")
    If ce.MergeCells = True Then
        ce.MergeCells = False
    End If
    If IsEmpty(ce) Then ce.Value = ce.Offset(-1, 0).Value
    ce.HorizontalAlignment = xlCenter
Next
End Sub
Em cảm ơn anh ạ. Anh ơi, anh xem code :
Sub themcot()
Dim i&
For i = 4 To 12 Step 3
Range(Cells(2, i)).EntireColumn.Insert

Next i
End Sub
Anh sửa lỗi code này hộ em với ạ. Em cảm ơn!
 
Em cảm ơn anh ạ. Anh ơi, anh xem code :
Sub themcot()
Dim i&
For i = 4 To 12 Step 3
Range(Cells(2, i)).EntireColumn.Insert

Next i
End Sub
Anh sửa lỗi code này hộ em với ạ. Em cảm ơn!
1) Với code của bạn, sửa
Range(Cells(2, i)).EntireColumn.Insert
thành
Cells(2, i).EntireColumn.Insert

2) Khi viết code thêm/xóa cột hay thêm/xóa hàng, lưu ý khi dùng For...Next, bởi vì, khi insert/xóa thì vô hình chung bạn đã làm thay đổi biến i và thứ tự dòng
Thông thường người ta không insert/xóa từng cột, mà tập trung các vùng có liên quan vào 1 Union, sau đó insert/xóa 1 lần thôi.
Ví dụ:
Mã:
Dim U as range
For i = 4 To 12 Step 3
       If U is nothing then
             set U = Cells(2, i)
       else
             set U = Union(U, Cells(2, i))
        end if
Next i
U.entirecolumn.Insert
 
Web KT
Back
Top Bottom