Cộng các ô Merge & center

Liên hệ QC
Mọi người ngủ rồi ạ %$$ xem cho em file trên với
 
Ý mình là bài mà bạn "trời, giờ mình mới thấy bài trả lời của bạn. " đây cơ, bạn nhờ gì?
 
VBA dành cho bạn:
Sub CongCellMerge()
Dim Rw As Long, Rws As Long, Col As Long

Application.ScreenUpdating = False
Range("B1").Activate
Col = ActiveCell.Column
Do Until ActiveCell.Offset(, -1) = ""
Rw = ActiveCell.Row
Rws = Selection.Rows.Count
ActiveCell = WorksheetFunction.Sum(Range(Cells(Rw, Col - 1), Cells(Rw + Rws - 1, Col - 1)))
ActiveCell.Offset(1).Activate
Loop
Application.ScreenUpdating = True
End Sub
Mà thực ra bài này thì thế này là đủ bác ạ:
Mã:
Sub abc()
Dim Cll As Range
For Each Cll In Sheets("Sheet1").Range("B1:B26")
    Cll.Value = Application.WorksheetFunction.Sum(Cll.MergeArea.Offset(, -1).Resize(Cll.MergeArea.Rows.Count, 1))
Next
End Sub
Còn bài mới của thớt thì lười quá, thớt tự vận dụng vậy
 
Ngoài module anh đã tạo, anh có thể giải thích cho em đoạn code anh tạo trong sheet 1 được ko ạ. (Nhờ có đoạn code này mà em đỡ mất công F5 liên tục), tuy nhiên vì đặc thù công việc phải Import file excel ra liên tục, anh có thể đính kèm đoạn code này của anh vô trong marco hoặc gộp vô module luôn được không ạ?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 And Target.Row <= Range("D65536").End(xlUp).Row And Target.Column > 12 And Target.Column < 17 Then
Range("R" & Target.Row) = WorksheetFunction.Sum(Range(Cells(Target.Row, 13), Cells(Target.Row, 16)))
End If
End Sub
Bài đã được tự động gộp:

Mà thực ra bài này thì thế này là đủ bác ạ:
Mã:
Sub abc()
Dim Cll As Range
For Each Cll In Sheets("Sheet1").Range("B1:B26")
    Cll.Value = Application.WorksheetFunction.Sum(Cll.MergeArea.Offset(, -1).Resize(Cll.MergeArea.Rows.Count, 1))
Next
End Sub
Còn bài mới của thớt thì lười quá, thớt tự vận dụng vậy
điền 1 con số lại phải bấm lệnh mới ra được đáp số nên mất công quá anh
 
Ngoài module anh đã tạo, anh có thể giải thích cho em đoạn code anh tạo trong sheet 1 được ko ạ. (Nhờ có đoạn code này mà em đỡ mất công F5 liên tục), tuy nhiên vì đặc thù công việc phải Import file excel ra liên tục, anh có thể đính kèm đoạn code này của anh vô trong marco hoặc gộp vô module luôn được không ạ?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 And Target.Row <= Range("D65536").End(xlUp).Row And Target.Column > 12 And Target.Column < 17 Then
Range("R" & Target.Row) = WorksheetFunction.Sum(Range(Cells(Target.Row, 13), Cells(Target.Row, 16)))
End If
End Sub
Bài đã được tự động gộp:


điền 1 con số lại phải bấm lệnh mới ra được đáp số nên mất công quá anh


Việc chép đoạn code này vào trang code VBA mà không làm được sao bạn? Tuy nhiên đoạn này chỉ có giá trị với trang trong file tôi gửi, không chép chỗ khác được.
 
Lần chỉnh sửa cuối:
Việc chép đoạn code này vào trang code VBA mà không làm được sao bạn? Tuy nhiên đoạn này chỉ có giá trị với trang trong file tôi gửi, không chép chỗ khác được.
không chép chỗ khác được thì rốt cuộc cũng không giải quyết được vấn đề anh
 
Đổi
Col = ActiveCell.Column
Range("B1").Activate
thành
Range("B1").Activate
Col = ActiveCell.Column
mới đúng nhé anh
Sub CongCellMerge()
Dim Rw As Long, Rws As Long, Col As Long

Application.ScreenUpdating = False
Range("T1").Activate
Col = ActiveCell.Column
Do Until ActiveCell.Offset(, -1) = ""
Rw = ActiveCell.Row
Rws = Selection.Rows.Count
ActiveCell = WorksheetFunction.Sum(Range(Cells(Rw, Col - 1), Cells(Rw + Rws - 1, Col - 1)))
ActiveCell.Offset(1).Activate
Loop
Application.ScreenUpdating = True
End Sub



Mỗi lần em nhập số liệu lại phải mất công click chạy code thì mới ra được kết quả. Có cách nào để code trên tự động cộng khi mình nhập liệu không ạ
Bài đã được tự động gộp:

Đề bài không ra ngay từ đầu, cứ thêm lắt nhắt nên không có hứng sửa.
Hic anh cho em xin zalo được không ạ :=\+
 
Web KT
Back
Top Bottom