-
04-10-2014, 02:44 PM #21Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
Em có sheet s1 ở cột PART-No đã sắp sếp dữ liệu theo thứ tự, giờ muốn thêm một dòng trắng vào cuối đoạn những dòng dữ liệu trùng nhau như đoạn đầu trong sheet s2 mà không phải làm thủ công.
Mã:Part-No|D28|D05|D06|... 122K|123|234|654 122K|987|654|321 122k|159|753|456 146L|147|258|369 900O|741|852|963 ...|.|..|..
Mã nguồn PHP:[COLOR=#000000]
Option Explicit Sub ChenDong[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim Rws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Col [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]W [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Th [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Integer Dim Rng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"S1"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Select Set Rng [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000BB]a2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]CurrentRegion Rws [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count Col [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Columns[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count sArr[/COLOR][COLOR=#007700]() = [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Col[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value ReDim dArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 To 2 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1 To Col [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) For [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 To UBound[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]()) For [/COLOR][COLOR=#0000BB]W [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 To Col dArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]W [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]W[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Next W [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 Then dArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"GPE" [/COLOR][COLOR=#007700]Else [/COLOR][COLOR=#0000BB]dArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]On Error Resume Next [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) <> [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Then Th [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Th [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 dArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]Th[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]sArr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]"A" [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next J On Error [/COLOR][COLOR=#007700]GoTo [/COLOR][COLOR=#0000BB]0 Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"S2"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Select [/COLOR][COLOR=#DD0000]'<=|' [/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]a2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Col [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]dArr[/COLOR][COLOR=#007700]() [[/COLOR][COLOR=#0000BB]a2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]CurrentRegion[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Sort Key1[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"A3"[/COLOR][COLOR=#007700]), [/COLOR][COLOR=#0000BB]Order1[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]xlAscending[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Key2[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"B3"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]_ [/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Order2[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]xlAscending[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Header[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]xlGuess[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]OrderCustom[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]MatchCase[/COLOR][COLOR=#007700]:= [/COLOR][COLOR=#0000BB]_ False[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Orientation[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]xlTopToBottom Columns[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"A:A"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Hidden [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True [/COLOR][COLOR=#DD0000]'*' [/COLOR][COLOR=#0000BB]End Sub [/COLOR]
Em không biết gì về macro cả. Như macro ChenDong của bác muốn kết quả trả về ở ngay trên sheet s1 mà không phải thêm sheet s2 nữa thì làm thế nào ạ? mong bác chỉ giáo giúp!
Chúc bạn thành công!
:dotphao:
H?i c�ch ch�n th�m d�ng
-
04-12-2014, 01:40 PM #22Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 3
Ðề: Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
Nhờ các anh, chị giúp em viết code chèn thêm dòng, và tính tổng từng tháng.
Dựa vào cột A (ngày chứng từ, chèn thêm 1 dòng trên và ghi Tháng 1, tháng 2, ... và tính tổng cho cột H và I của tháng đó.
Giống như những dòng em tô mẫu.
Trân trọng cảm ơnMã nguồn PHP:[COLOR=#000000]
Option Explicit Sub GPEDongTongCuaThang[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim J [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]fDat [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Date[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]lDat [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Date[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Nam [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Integer Dim MyFormat [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Dim WF [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Object[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Rng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]sRng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"334_2012"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Select Set WF [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]WorksheetFunction Set Rng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([[/COLOR][COLOR=#0000BB]b10[/COLOR][COLOR=#007700]], [[/COLOR][COLOR=#0000BB]b10[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]xlDown[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000BB]c9[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]CurrentRegion[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count MyFormat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]NumberFormat Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]NumberFormat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"MM/DD/yyyy" [/COLOR][COLOR=#0000BB]fDat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]WF[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Min[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]): [/COLOR][COLOR=#0000BB]lDat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]WF[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Max[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Nam [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Year[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]lDat[/COLOR][COLOR=#007700]): [/COLOR][COLOR=#0000BB]ReDim Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 To 3[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Set Rng [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000BB]b9[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]9[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ScreenUpdating [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Month[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]fDat[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]To Month[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]lDat[/COLOR][COLOR=#007700]) [[/COLOR][COLOR=#0000BB]aa7[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]DateSerial[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Nam[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [[/COLOR][COLOR=#0000BB]ab7[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]DateSerial[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Nam[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]WF[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DMin[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700], [[/COLOR][COLOR=#0000BB]b9[/COLOR][COLOR=#007700]], [[/COLOR][COLOR=#0000BB]aa4[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]ab5[/COLOR][COLOR=#007700]]) [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]WF[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DSum[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700], [[/COLOR][COLOR=#0000BB]i9[/COLOR][COLOR=#007700]], [[/COLOR][COLOR=#0000BB]aa4[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]ab5[/COLOR][COLOR=#007700]]) [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]WF[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DSum[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700], [[/COLOR][COLOR=#0000BB]j9[/COLOR][COLOR=#007700]], [[/COLOR][COLOR=#0000BB]aa4[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]ab5[/COLOR][COLOR=#007700]]) [/COLOR][COLOR=#0000BB]Set sRng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Find[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Format[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]), [/COLOR][COLOR=#DD0000]"mm/dd/yyyy"[/COLOR][COLOR=#007700]), , [/COLOR][COLOR=#0000BB]xlValues[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]xlWhole[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Not sRng Is Nothing Then With sRng [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]EntireRow[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Insert[/COLOR][COLOR=#007700]: .[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"Tháng " [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Str[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700]) .[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]7[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]): .[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]8[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]End With End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next J Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ScreenUpdating [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]NumberFormat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]MyFormat End Sub [/COLOR]
-
04-13-2014, 04:20 PM #23Silver member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Ðề: Fương hướng giải quyết để "viết code chèn thêm dòng, và tính tổng từng tháng"
Ta biết rằng các ngày tháng GD (giao dịch) trong CSDL đó không hẵn là tháng đầu năm, cũng như trong 1 tháng không thể có GD ngay từ ngày đầu của tháng; Cũng có thể có tháng GD chỉ vài lần.
Vậy cho nên ta cần tìm ra ngày GD đầu tiên của các tháng
Việc này có thể hoàn toàn nhờ hàm DMIN(), mà cụ thể như =DMIN(B9:J1011,B9,AA4:AB5)
Ở đây,B9:J1011 là vùng chứa toàn bộ dữ liệu;
[b9] là ô đầu tiên của cột/Trường cần tìm giá trị min
& vùng điều kiện [AA4:AB5] là vùng chứa khoảng cần tìm; Thực tế trong bài là tìm từng giá trị min trong 1 tháng nhất định nào đó.
Trong macro ta thiết lập 1 vòng lặp khảo sát toàn bộ các tháng trong năm; Tháng nào có GD ta ghi vô biến mảng gồm 3 thành fần
(*) Thành fần đầu chứa trị min ngày GD trong tháng;
(*) Thành fần tiếp theo là tổng số lượng 'phát sinh nợ' trong tháng đó & thành fần cuối là tổng fát sinh có của tháng
Các tổng này cũng được tính nhờ hàm DSUM() thích ứng.
Sau khi ta có số liệu của tháng nào đó, ta đi tìm ngày MIN của tháng đó trong cột/trường ghi ngày tháng GD
Khi tìm ra ta thêm 1 dòng trống trên nó & ghi 2 số liệu tổng còn lại vô cột thích hợp của dòng trống này.
Như vậy CSDL của chúng ta có thứ tự ngày tháng GD tăng dần; Nếu không vậy, ta cần tiến hành sắp xếp theo trường này trước khi chạy macro.
Vài lời giải thích để rõ thêm cho bạn nào muốn tìm hiểu giải thuật của macro trên.
:khakha:
-
04-24-2014, 02:40 AM #24Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 30
Ðề: Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
Gửi bởi TQChanh
Đoạn code của bác rất hay, công việc của em có một chút xíu liên quan đến bài toán trên. Vì đọc được bài của bác mà e cũng đang nghiên cứu về VBA để mở rộng hơn đoạn code của bác để phục vụ công việc mà khó quá. Ý tưởng của e là như thế này với bài toán của bác sau khi chạy VBA trường 'Ma' được như sau:
'Ma' |. . .
102C40047 2|. . .
102C40047 1|. . .
102C40047 0|. . .
2114A0054 3|. . .
2114A0054 2|. . .
2114A0054 1|. . .
2114A0054 0|. . .
10240V947 8-|. . .
10240V947 7|. . .
10240V947 6|. . .
10240V947 5|. . .
10240V947 4|. . .
10240V947 3|. . .
10240V947 2|. . .
10240V947 1|. . .
10240V947 0|. . .
21144G054 4|. . .
21144G054 3|. . .
21144G054 2|. . .
21144G054 1|. . .
21144G054 0|. . .
Bác giúp e với nhé!
-
04-24-2014, 01:10 PM #25Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Ðề: Bạn thử chạy với macro sau:
Mã nguồn PHP:[COLOR=#000000]
Option Explicit Sub InsertRowsForNumbers[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim Rws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte Dim Cls [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VTr [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte Dim Ma [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Rws [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]xlDown[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Row [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rws To 2 Step [/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]1 With Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"A"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Ma [/COLOR][COLOR=#007700]= .[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]VTr [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]InStr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Ma[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]CLng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Mid[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Ma[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VTr [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]Ma [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Left[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Ma[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VTr[/COLOR][COLOR=#007700]) .[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]NumFrom[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]EntireRow[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Insert [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each Cls In [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]NumFrom[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 Cls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Ma [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]CStr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Dm[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Next Cls End With Dm [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0 Next J End Sub [/COLOR]
Chúc vui khỏe nha! ho:
-
04-24-2014, 04:59 PM #26Silver member
- Ngày tham gia
- Aug 2015
- Bài viết
- 72
Ðề: Bạn thử chạy với macro sau:
Cám ơn bác TQChanh rất nhiều. Em cũng vừa chạy thử đoạn codde trên e thấy rất đúng ý em, nhưng thiếu một chút là các dứ liệu ở các cột bên cạnh cột A như cột B,C.... không = dữ liệu ở hàng trước nó. Và các câu lệnh ở D9--->D15 e chưa hiểu lắm. Bác giúp e nhé
-
04-24-2014, 06:38 PM #27Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Bạn thử chạy với macro sau:
Cám ơn bác TQChanh rất nhiều. Em cũng vừa chạy thử đoạn codde trên e thấy rất đúng ý em;
(1) Nhưng thiếu một chút là các dứ liệu ở các cột bên cạnh cột A như cột B,C.... không = dữ liệu ở hàng trước nó.
(2) Và các câu lệnh ở D9--->D15 e chưa hiểu lắm. Bác giúp e nhé
. . Ma. . . . .|. . .
102C40047 2|. . .
102C40047 1|. . .
102C40047 0|. . .
. . .|. . .
10240V947 :nuhon: :kinhhoang:[/B]
-
04-24-2014, 08:53 PM #28Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 52
Ðề: Bạn thử chạy với macro sau:
Gửi bởi TQChanh
Hihi :nuhon:
-
04-25-2014, 12:53 AM #29Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
Hiểu cái nào mần cái í trước; Còn dzụ dữ liệu ngày/tháng hỏi lại để rõ thêm
Mã nguồn PHP:[COLOR=#000000]
Option Explicit Sub InsertRowsForNumbers[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim Rws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte Dim Cls [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range ReDim Arr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 To 1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1 To 3[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]xlDown[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Row [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]J [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rws To 2 Step [/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]1 With Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]J[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"A"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]= .[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]NumFrom[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]EntireRow[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Insert Arr[/COLOR][COLOR=#007700]() = .[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each Cls In [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]NumFrom[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dm [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 Cls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]NumFrom [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Dm Cls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Arr[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Next Cls End With Dm [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0 Next J End Sub [/COLOR]
Dữ liệu kiểu ngày tháng thì thêm dòng theo số ngày hay sao đây bạn?
-
04-25-2014, 05:59 PM #30Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
Gửi bởi TQChanh
Hiện nay, trên mạng cũng có rất nhiều diễn đàn mà cánh nam giới chia sẻ với nhau về nghệ thuật bế tinh và coi đó là bí kíp để gìn giữ sức khỏe và tư thế đàn ông. Tuy nhiên, theo giáo sư Trần Quán...
Tư thế yêu mà không xuất của quý ông. Tác hại như thế nào?