Hoàng Nhật Phương
Thành viên gắn bó
- Tham gia
- 5/11/15
- Bài viết
- 1,894
- Được thích
- 1,214
Ý chị là tìm dòng nào chứa dòng chữ tổng cộng và sau đó sum từ trên xuống phải không?Xin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
View attachment 236550
Đúng rồi bạn, cảm ơn Bạn đã quan tâm.Ý chị là tìm dòng nào chứa dòng chữ tổng cộng và sau đó sum từ trên xuống phải không?
Bài này OT tự viết code được mà. Duyệt một vòng lặp for next, r đầu tiên= 2, sau đó r= i+1 khi xác định dòng cần tính tổng. Thử điXin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
View attachment 236550
Đại khái nó vầyXin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
View attachment 236550
Hỏi bài trong Box Lập trình, thử chạy Sub này xem sao:Xin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
View attachment 236550
Public Sub s_Gpe()
Dim Rng As Range, I As Long, K As Long, R As Long
Set Rng = Range("B2", Range("B2").End(xlDown)).Resize(, 2)
R = Rng.Rows.Count
For I = 1 To R - 1
If Not Rng(I, 1) Like "Tong*" Then
K = K + 1
Else
Rng(I, 2) = "=SUM(R[-" & K & "]C:R[-1]C)"
K = 0
End If
Next I
Rng(R, 2) = "=SUMIF(R2C[-1]:R[-1]C[-1],""Tong*"",R2C:R[-1]C)"
End Sub
Theo tôi thì không cần dòng tổng, khi sử dụng Subtotal thì nó tự động insert dòng tổng.Xin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
Ùi, đơn giản vậy mà OT loay hoay mãi mà không viết được ạ,dạ vâng đúng là con cần xử lý vấn đề bằng code Thầy ạHỏi bài trong Box Lập trình, thử chạy Sub này xem sao:
PHP:Public Sub s_Gpe() Dim Rng As Range, I As Long, K As Long, R As Long Set Rng = Range("B2", Range("B2").End(xlDown)).Resize(, 2) R = Rng.Rows.Count For I = 1 To R - 1 If Not Rng(I, 1) Like "Tong*" Then K = K + 1 Else Rng(I, 2) = "=SUM(R[-" & K & "]C:R[-1]C)" K = 0 End If Next I Rng(R, 2) = "=SUMIF(R2C[-1]:R[-1]C[-1],""Tong*"",R2C:R[-1]C)" End Sub
Hỏi bài trong Box Lập trình, thử chạy Sub này xem sao:
PHP:Public Sub s_Gpe() Dim Rng As Range, I As Long, K As Long, R As Long Set Rng = Range("B2", Range("B2").End(xlDown)).Resize(, 2) R = Rng.Rows.Count For I = 1 To R - 1 If Not Rng(I, 1) Like "Tong*" Then K = K + 1 Else Rng(I, 2) = "=SUM(R[-" & K & "]C:R[-1]C)" K = 0 End If Next I Rng(R, 2) = "=SUMIF(R2C[-1]:R[-1]C[-1],""Tong*"",R2C:R[-1]C)" End Sub
Xin chào các Bạn,
Hiện OT đang có dữ liệu như ảnh (tập tin gửi kèm), nhờ các Bạn xem & giúp đỡ OT trường hợp "code tự tìm dòng tổng và điền công thức vào các dòng tổng cộng màu vàng" với ạ.
Chúc cả nhà ngày mới ngập tràn niềm vui.
View attachment 236550
Sub Cong_Tong()
Dim sArr(), i As Long, r As Long
sArr = Range("A2", [A65536].End(3)(3)).Resize(, 3).Value
r = 2
For i = 1 To UBound(sArr)
If sArr(i, 2) Like "Tong*" Then
sArr(i, 3) = "=sum(R" & r & "C:R[-1]C)"
r = i + 2
End If
Next
sArr(UBound(sArr), 3) = "=sum(R2C:R[-1]C)/2"
[A2].Resize(UBound(sArr), UBound(sArr, 2)) = sArr
End Sub
Ở đây, hễ người ta đã hỏi VBA thì ngừoi ta không chấp nhận cách khác.Dữ liệu không bị đục lỗ thì Auto Sum thôi là được mà.
Access Query lấy SubTotals cùng với chi tiết không đơn giản lắm....Nói nhỏ chuyện này chút cho có chuyện bàn nha. OT tham gia nay cũng lâu rồi, thỉnh thoảng thấy chọt luôn đến ADO, vậy là code cơ bản này không chịu tự viết hén. Hay là cũng tạo topic cho có bài viết để cho mọi người mau lên sao *****
Sub TongCongTheoFIND()
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Dim Rw As Long, HDg As Long
Set Rng = Range([B2], [B65500].End(xlUp))
Rw = 2
Set sRng = Rng.Find("Tong cong ", , xlFormulas, xlPart)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
HDg = sRng.Row - Rw
sRng.Offset(, 1).FormulaR1C1 = "=SUM(R[" & -HDg & "]C:R[-1]C)"
Rw = sRng.Row + 1
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
Set sRng = [C65500].End(xlUp): Rw = sRng.Row - 1
HDg = sRng.Row - 2
sRng.FormulaR1C1 = "=SUM(R[" & -HDg & "]C:R[-1]C)/2"
End Sub
Hic anh quanghai1969 ơi , Ot muốn viết lắm nhưng cảm thấy không đủ tự tin và tư duy thực sự không thể nghĩ ra nên không làm được anh ạ.Một kiểu viết khác cho vuiMã:Sub Cong_Tong() .... End Sub
Nói nhỏ chuyện này chút cho có chuyện bàn nha. OT tham gia nay cũng lâu rồi, thỉnh thoảng thấy chọt luôn đến ADO, vậy là code cơ bản này không chịu tự viết hén. Hay là cũng tạo topic cho có bài viết để cho mọi người mau lên sao *****
Câu SQL cho ADO, theo tinh thần bài #13 là
(Select maHang, SUM(field1) As STtl1, SUM(field2) As Sttl2, ... From [cái gì đó'] Group By maHang
Union All
Select 'zzz' Grand Total', SUM(field1) As STtl1, SUM(field2) As Sttl2, ... From [cái gì đó']) Order by maHang
Chú thích: vừa sửa câu, bỏ dấu ) cuối cùng: dư
Con chào Thầy ạ,Lại gặp "đc, ji, ah..."
Từ này ở đâu ra thế?