Ô đã merge không giống nhau thì bạn coppy công thức kiểu gì được, muốn copy sang ô khác cũng phải vào từng ô một để paste. Công thức từ ô dưới cũng lên tùy bạn chọnNhờ mọi người giúp đỡ em tính tổng các ô ở cột A ra kết quả SUM ở ô B (đã được Merge & center) như file đính kèm với ạ
B19=SUM(INDIRECT(ADDRESS(ROW();1)):$A$26)-SUM(INDIRECT(ADDRESS(ROW()+1;2)):$B$26)
C19=SUM(A19:$A$26)-SUM(C20:$C$26)
ko thể VBA được ạ anhÔ đã merge không giống nhau thì bạn coppy công thức kiểu gì được, muốn copy sang ô khác cũng phải vào từng ô một để paste. Công thức từ ô dưới cũng lên tùy bạn chọn
View attachment 259387Mã:B19=SUM(INDIRECT(ADDRESS(ROW();1)):$A$26)-SUM(INDIRECT(ADDRESS(ROW()+1;2)):$B$26) C19=SUM(A19:$A$26)-SUM(C20:$C$26)
VBA dành cho bạn:ko thể VBA được ạ anh
ĐổiVBA dành cho bạn:
Sub CongCellMerge()
Dim Rw As Long, Rws As Long, Col As Long
Application.ScreenUpdating = False
Col = ActiveCell.Column
Range("B1").Activate
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
Cảm ơn! Tôi nhầm to he.Đổi
Col = ActiveCell.Column
Range("B1").Activate
thành
Range("B1").Activate
Col = ActiveCell.Column
mới đúng nhé anh
Sub CongCellMerge()Cảm ơn các Anh nhiều ạ; Sẵn tiện nhờ giúp em cộng các Merge & Center đây nữa với ạ
có cách nào để khỏi phải refresh ko ạ. Tức thay đổi số liệu là tự động cộng luôn. Mặc định cột R là Sum hết chứ ko cần phải mất công bôi đenSub CongCellMerge()
Dim Rw As Long, Col As Long
Application.ScreenUpdating = False
Range("R2").Activate
Col = ActiveCell.Column
Do Until ActiveCell.Offset(, -14) = ""
Rw = ActiveCell.Row
ActiveCell = WorksheetFunction.Sum(Range(Cells(Rw, Col - 5), Cells(Rw, Col - 2)))
ActiveCell.Offset(1).Activate
Loop
Application.ScreenUpdating = True
End Sub
Vậy thì phải dùng cách Worksheet_Change thôicó cách nào để khỏi phải refresh ko ạ. Tức thay đổi số liệu là tự động cộng luôn. Mặc định cột R là Sum hết chứ ko cần phải mất công bôi đen
Vậy thì phải dùng cách Worksheet_Change thôi
Bạn thử dùng file.Nhờ anh giúp em với ạ
1. Nhờ anh *1.000đ vào ô giúp em với ạ. (hiển thị số nghìn đồng)Bạn thử dùng file.-
1. Không hiểu nhân 1000 sao phải nhờ?1. Nhờ anh *1.000đ vào ô giúp em với ạ. (hiển thị số nghìn đồng)
2. Nhờ anh mặc định hết cả cột R giúp em. Mặc định ô merge R = Tổng các ô Merge M + N + O + P
3. Cho em hỏi câu ngoài lề, có cách nào để liên kết Marco tự động copy và chạy module ko ạ
Cảm ơn và biết ơn các Anh ở group nhiều đã bỏ thời gian ra giải quyết các vấn đề công việc giúp em. Em muốn học về khai báo Dim Rw As Long, Col As Long ... thì học ở đâu ạ. Xin được hướng dẫn tài liệu giúp em ạ
Anh cho em số zalo được ko ạ? Em cứ phải chờ nhiều thời gian để được trả lời lâu quá anh à1. Không hiểu nhân 1000 sao phải nhờ?
2. Mặc định cả cột để làm gì? hiện tại mặc định cứ cột D có dữ liệu đến đâu thì code có tác dụng đến đó
3. Macro tự động copy nào? Muốn nói gì thì bày cái file ra đây!
Học trên mạng, search google đầy.
Mình không hiểu sao phải như vậy nhỉ, bạn có lưu file với định dạng xlsm không vậy.Anh @Hoàng Tuấn 868 cho em cái code mà làm khổ thằng em.
Code của anh ở link quá ok rồi, nhưng mỗi lần áp dụng cứ phải Alt + F11, sau đó copy code vào module mất công
Có cách nào để bấm vào macro là tự động chạy code của anh ko; em toàn phải copy code của anh vào đây thì mới chạy đượcMình không hiểu sao phải như vậy nhỉ, bạn có lưu file với định dạng xlsm không vậy.
Á à là cái bạn có cái bài mà mình bỏ thời gian ngồi code cho xong không í ới gì hết đây àCó cách nào để bấm vào macro là tự động chạy code của anh ko; em toàn phải copy code của anh vào đây thì mới chạy được
trời, giờ mình mới thấy bài trả lời của bạn. Thật tuyệt vời, quá đúng ý mình. Cảm ơn Anh @Nhattanktnn rất nhiều!!!!Á à là cái bạn có cái bài mà mình bỏ thời gian ngồi code cho xong không í ới gì hết đây à
Phải chuột vào sheet, chọn insert, modul rồi dán code vào thôi mà.Có cách nào để bấm vào macro là tự động chạy code của anh ko; em toàn phải copy code của anh vào đây thì mới chạy được
Cảm ơn người giúp mình mà tag cái tên cũng sai. Bó tay!trời, giờ mình mới thấy bài trả lời của bạn. Thật tuyệt vời, quá đúng ý mình. Cảm ơn Anh @nhattan090909w rất nhiều!!!!![]()
Mừng quá là có thật bác à! hic mấy đêm mấy ngày đầu óc cứ ngơ ngơ ngẩn ngẩnCảm ơn người giúp mình mà tag cái tên cũng sai. Bó tay!
Bạn có bài gì mà tâm đắc vậy? Mình tò mò quáMừng quá là có thật bác à! hic mấy đêm mấy ngày đầu óc cứ ngơ ngơ ngẩn ngẩn
Vấn đề về cộng các ô sau khi đã Merge & Center rắc rối quá ạBạn có bài gì mà tâm đắc vậy? Mình tò mò quá![]()
bài đó là ở link https://www.giaiphapexcel.com/diend...rge-center-tự-xếp-các-hàng-giống-nhau.155703/Ý 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ì?
Tự tùy biến nhé.Vấn đề về cộng các ô sau khi đã Merge & Center rắc rối quá ạ
Mà thực ra bài này thì thế này là đủ bác ạ: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
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
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 ạ?Bạn thử dùng file.
đ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á anhMà thực ra bài này thì thế này là đủ bác ạ:
Còn bài mới của thớt thì lười quá, thớt tự vận dụng vậyMã: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
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
không chép chỗ khác được thì rốt cuộc cũng không giải quyết được vấn đề anhViệ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.
mỗi lần điền số xong lại phải bấm cộng rắc rối quá anh à. Em mong muốn đã là vba thì sẽ tự động đỡ được thao tácTự tùy biến nhé.
Đề bài không ra ngay từ đầu, cứ thêm lắt nhắt nên không có hứng sửa.mỗi lần điền số xong lại phải bấm cộng rắc rối quá anh à. Em mong muốn đã là vba thì sẽ tự động đỡ được thao tác![]()
Sub CongCellMerge()Đổi
Col = ActiveCell.Column
Range("B1").Activate
thành
Range("B1").Activate
Col = ActiveCell.Column
mới đúng nhé anh
Hic anh cho em xin zalo được không ạĐề bài không ra ngay từ đầu, cứ thêm lắt nhắt nên không có hứng sửa.
Anh dùng điện thoại NOKIA bàn phím vật lý.Hic anh cho em xin zalo được không ạ![]()
vậy xin anh 10 phút ở group đây với ạ. Chỉnh cho em tự động cộng sau khi người dùng nhập liệu số vớiAnh dùng điện thoại NOKIA bàn phím vật lý.
Mình không biết "group" là gì.vậy xin anh 10 phút ở group đây với ạ. Chỉnh cho em tự động cộng sau khi người dùng nhập liệu số với
ok, cảm ơn Anh đã giúp đỡ! (dù rằng giúp không đến nơi đến chốn)Mình không biết "group" là gì.
Không phải không đến nơi, đến chốn. Mà mình thấy toàn người Việt mà sao phải chèn tiếng linh tinh vào làm gì. Vì vậy nên không muốn làm.ok, cảm ơn Anh đã giúp đỡ! (dù rằng giúp không đến nơi đến chốn)
Bác sửa cho em chỉ cần nhập số liệu là tự động ra kết quả luôn được ko ạ!Mà thực ra bài này thì thế này là đủ bác ạ:
Còn bài mới của thớt thì lười quá, thớt tự vận dụng vậyMã: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