- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
Bác ơi. tại em viết ứng dụng cần dùng code đề xử lý nhửng vấn đề khác nửaDùng Pivot Table trong nháy mắt thì ra kết quả. Sao phải code két???
Em viết thử không biết có đúng ý bác không.Bác ơi. tại em viết ứng dụng cần dùng code đề xử lý nhửng vấn đề khác nửa
Bác ơi. tại em viết ứng dụng cần dùng code đề xử lý nhửng vấn đề khác nửa
Muốn viết ứng dụng thì tự viết đi. Chỗ nào sai thì đem lên đây nhờ chỉnh sửa.
Kiểu làm của bạn hiện tại là bạn thiết kế ứng dụng và nhờ người ta code giùm. Vì bạn nắm thiết kế cả hệ thống cho nên phần mềm thuộc về bạn, công sức viết từng mô đun là của anh chị em diễn đàn. Theo định nghĩa của tôi thì đây là lợi dụng chứ không phải nhờ vả.
Đấy chỉ là định nghĩa của anh thôi. Người lập thớt không cần biết và không quan tâm.
Sau khi thớt này được ai đó viết dùm đoạn code dán vào file, thớt sẽ lại đi chỗ khác nói với tất cả rằng : em viết ứng dụng.
Bạn dùng code sau nhé:Chào tất cả thành viên GPE ! Chức mừng năm mới 2018
Mình đang dùng hàm SUMIF cho việc Cộng dồn SL, do tên hàng quá nhiều dùng hàm thì nặng. Mong mọi người dùng code để xử lý . Xin chân thành cảm ơn !
Sub Tong_HLMT()
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended properties=""Excel 8.0;HDR=No"""
Sheet1.[N5].CopyFromRecordset (cn.Execute("select F1,Sum(F2) from (Select F1,F2 from [sheet1$B5:C] union all select F1, F3 from [sheet1$E5:G] union all select F1,F4 from [sheet1$I5:L]) where F1 is not null group by F1"))
End Sub
COde bác quá tuyệt vời. Nhưng đọc em không hiểu gì hết. bác có thể sữa lại code cho dễ dễ xíu được không. ý e là dể dàng thay đổi đầu vào đầu ra của dữ liệu . Em cảm ơn BácBạn dùng code sau nhé:
Mã:Sub Tong_HLMT() Dim cn As Object Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended properties=""Excel 8.0;HDR=No""" Sheet1.[N5].CopyFromRecordset (cn.Execute("select F1,Sum(F2) from (Select F1,F2 from [sheet1$B5:C] union all select F1, F3 from [sheet1$E5:G] union all select F1,F4 from [sheet1$I5:L]) where F1 is not null group by F1")) End Sub
Ủa thì em cũng tự viết mà dùng hàm SUmif nó nặng. thì không biết thì mới lên đâu hỏi chứ em biết rồi em lên đây hỏi làm gì. Còn Riêng bác em không cần bác giúp. Từ này về sau em cần sự giúp đở của Bác. Bác giỏi nhưng phải có Tâm giúp người khác thì mới Bền được. Chứ Bác Hơn thua ganh ghét người ta làm gì. Khi ta không biết người ta mới hỏi ai giúp được thì giúp thì tôi xin chân thành cảm ơn, còn ai không giúp thì cũng chẳng sao cả. Còn Bác không giúp mà Bác còn nói chuyện làm cho người ta không Vui. Còn tôi viết ứng dụng cho công việc của tôi, Tôi thích VBA nên nghiên cứu. Và tất nhiên không biết ta sẻ hỏi. Và từ nay tôi hỏi tôi không cần sự trợ giúp của BÁc. Chào BÁcMuốn viết ứng dụng thì tự viết đi. Chỗ nào sai thì đem lên đây nhờ chỉnh sửa.
Kiểu làm của bạn hiện tại là bạn thiết kế ứng dụng và nhờ người ta code giùm. Vì bạn nắm thiết kế cả hệ thống cho nên phần mềm thuộc về bạn, công sức viết từng mô đun là của anh chị em diễn đàn. Theo định nghĩa của tôi thì đây là lợi dụng chứ không phải nhờ vả.
Làm việc với dữ liệu việc đầu tiên là phải chú ý để định dạng chuẩn.Chào tất cả thành viên GPE ! Chức mừng năm mới 2018
Mình đang dùng hàm SUMIF cho việc Cộng dồn SL, do tên hàng quá nhiều dùng hàm thì nặng. Mong mọi người dùng code để xử lý . Xin chân thành cảm ơn !
Làm việc với dữ liệu việc đầu tiên là phải chú ý để định dạng chuẩn.
Tại sao không cho dữ liệu vào một vùng mà phải là 3 vùng?
Các vùng dữ liệu phải thống nhất số cột, nếu không có dữ liệu thì có thể bỏ trống hoặc ẩn đi.
Nguyên tắc của dữ liệu luôn phải có ngày tháng, số thứ tự. Đủ các thông tin thì sau đó muốn làm gì cũng dễ như trở bàn tay
Vài lời chia sẻ cách làm việc với Excel
Chỉ là Union Query thôi bạn. Nếu muốn hiểu thì bạn có thể tham khảo về các câu lệnh truy vấn trong Access nhé.COde bác quá tuyệt vời. Nhưng đọc em không hiểu gì hết. bác có thể sữa lại code cho dễ dễ xíu được không. ý e là dể dàng thay đổi đầu vào đầu ra của dữ liệu . Em cảm ơn Bác
Làm việc với dữ liệu việc đầu tiên là phải chú ý để định dạng chuẩn.
Tại sao không cho dữ liệu vào một vùng mà phải là 3 vùng?
Các vùng dữ liệu phải thống nhất số cột, nếu không có dữ liệu thì có thể bỏ trống hoặc ẩn đi.
Nguyên tắc của dữ liệu luôn phải có ngày tháng, số thứ tự. Đủ các thông tin thì sau đó muốn làm gì cũng dễ như trở bàn tay
Vài lời chia sẻ cách làm việc với Excel
Chỉ là Union Query thôi bạn. Nếu muốn hiểu thì bạn có thể tham khảo về các câu lệnh truy vấn trong Access nhé.
Sao phải dùng Dic? Tôi không quen dùng Dic bạn à.bác giúp em làm theo kiểu
Set Dic = CreateObject("Scripting.dictionary")
Được không. chân thành cảm ơn bác
Nếu bạn nói vậy thì tham khảo code này. Chỉ tham khảo thôi vì mình chỉ viết code cho ra đúng kết quả như bạn mong đợi trong file mẫuBác nói thì em hiểu. Không phải là không biết sắp sếp cho dể dàng cộng. Mà phải vậy thì mới tiến bộ được, ( Và còn rất nhiều trường hợp không sắp xếp được trong 1 databale lớn của phần mềm. rất mong Bác hiểu điều đó ) Nếu dữ liệu sắp sếp thì em lên đây hỏi làm gì nữa hả Bác. Cảm ơn bác nhé
Sub abc()
Dim sArr(), i As Long, Dic As Object, Tmp As String, k As Long, j As Long, x As Long
Dim TenHang(), SL()
Set Dic = CreateObject("scripting.dictionary")
sArr = [B5:L10000].Value
SL = Array(2, 6, 11)
TenHang = Array(1, 4, 8)
ReDim Preserve sArr(1 To UBound(sArr), 1 To UBound(sArr, 2) + 3)
For i = 1 To UBound(sArr)
For j = LBound(SL) To UBound(SL)
If sArr(i, TenHang(j)) <> Empty Then
Tmp = sArr(i, TenHang(j))
Tmp = Replace(LCase(Tmp), " ", "")
If Not Dic.exists(Tmp) Then
k = k + 1
Dic.Add Tmp, k
sArr(k, UBound(sArr, 2) - 1) = sArr(i, TenHang(j))
sArr(k, UBound(sArr, 2)) = sArr(i, SL(j))
Else
x = Dic.Item(Tmp)
sArr(x, UBound(sArr, 2)) = sArr(x, UBound(sArr, 2)) + sArr(i, SL(j))
End If
End If
Next
Next
[B5].Resize(UBound(sArr), UBound(sArr, 2)) = sArr
End Sub
... Mà phải vậy thì mới tiến bộ được, ( Và còn rất nhiều trường hợp không sắp xếp được trong 1 databale lớn của phần mềm...