Hỏi Về Chèn Dòng Có điều Kiện Kết Hợp Tự động điền Dòng Chữ (vào ...

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Hỏi về chèn dòng có điều kiện kết hợp tự động điền dòng chữ (vào dòng vừa chèn) (1 người xem)
  • Thread starter Thread starter Dauthivan
  • Ngày gửi Ngày gửi 13/1/12
Liên hệ QC

Người dùng đang xem chủ đề này

Đang trực tuyến: 2 (Thành viên: 0, Khách: 2) D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327 Bài toán hôm qua nhờ mọi người góp ý, buổi hôm nay ngồi nghiên cứu viết Code giờ em đã bắt đầu quen dần. Hiện tại, bản thân em đã có thể tự làm được các kiểu bài tương tự rồi. Em xin nhờ mọi người giúp em thêm 01 bài toán: DB2_Chendong.jpg Yêu cầu của đầu bài: Tại mỗi dòng cuối của tất cả công việc, làm thế nào để sau khi chạy Code thì mỗi công việc được tự động chèn thêm 2 dòng, đồng thời nội dung của từng dòng được đánh nội dung vào luôn như sau: - Dòng thứ nhất xuất hiện dòng chữ: Chi phí chung - Dòng thứ 2 xuất hiện dòng chữ: Thu nhập chịu thuế tính trước Trên màn hình kết quả hình ảnh sau khi chèn dòng màu vàng (em làm mẫu công việc số 1) KQ2_Chendong.jpg

File đính kèm

  • Chen dong.xls Chen dong.xls 36 KB · Đọc: 261
Lần chỉnh sửa cuối: 13/1/12 Sắp xếp theo thời gian sắp xếp theo bầu chọn hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu Khởi động ngày mới! Bạn chạy thử CODE này nhé! Mình cũng đang tập tành học VBA như bạn đó! PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range Set Clls1 = Cells(8, 8) fRow = 4 lRow = Cells(65536, 3).End(xlUp).Row Cells(lRow + 1, 3).Resize(2).Value = Clls1.Resize(2).Value With Cells(lRow + 1, 3) .Resize(2).HorizontalAlignment = xlLeft .Resize(2).Font.FontStyle = "Bold" End With For i = lRow To fRow + 2 Step -1 With Cells(i, 1) If .Value <> "" Then .Resize(2, 1).EntireRow.Insert .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next End Sub Bạn thử làm cách khác nhé, dùng vòng lặp không xác định DO WHILE.....LOOP hoặc DO....LOOP UNTIL kết hợp với thuộc tính End() xem sao!Cùng nhau học hỏi! Lần chỉnh sửa cuối: 14/1/12 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Hoa còi suy nghĩ thêm: thử bỏ đoạn code phía trên vòng lặp For. Coi như bài tập suy luận. Vì đoạn code đó giống y đoạn code bên trong vòng lặp. Tức là bỏ hẳn đoạn này: PHP: Sao chép. Cells(lRow + 1, 3).Resize(2).Value = Clls1.Resize(2).Value With Cells(lRow + 1, 3) .Resize(2).HorizontalAlignment = xlLeft .Resize(2).Font.FontStyle = "Bold" End With Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu Công việc bận quá giờ mới ghé diễn đàn được, hoa còi thử làm theo gợi ý của sư phụ, thanks sư phụ! PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range Set Clls1 = Cells(8, 8) fRow = 4 lRow = Cells(65536, 3).End(xlUp).Row For i = lRow + 1 To fRow + 2 Step -1 With Cells(i, 1) If .Value <> "" Or i = lRow + 1 Then .Resize(2, 1).EntireRow.Insert .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next End Sub Lần chỉnh sửa cuối: 14/1/12 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Chính xác là như thế! Lần sau, hễ thấy cái gì giống giống nhau, tìm cách gom lại. Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327 Xin giúp em biết thêm một số đối tượng
hoamattroicoi đã viết: Bạn thử làm cách khác nhé, dùng vòng lặp không xác định DO WHILE.....LOOP hoặc DO....LOOP UNTIL kết hợp với thuộc tính End() xem sao!Cùng nhau học hỏi! Nhấp chuột vào đây để mở rộng...
Trình độ của bác hiện giờ đã tương đối thành thạo rồi, trình của em còi lắm. Một số đối tượng em đọc còn chưa hiểu, bác có biết hiện giờ có sách nào hướng dẫn học tốt nhất về VBA không ? Chỉ giúp cho em biết để em mua về đọc. Rất mong bác và mọi người giải thích dùm em đoạn sau mới, em không biết nó là gì PHP: Sao chép. Set Clls1 = Cells(8, 8) ............. .Resize(2, 1).EntireRow.Insert .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value (Mặc dù thuật toán em có hiểu, ví dụ dòng If .Value <> "" Or i = lRow + 1 Then thì em hiểu lựa chọn dòng thứ tự của các công việc (từ công việc thứ 2 trở đi). Lần chỉnh sửa cuối: 14/1/12 Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu PHP: Sao chép. (Mặc dù thuật toán em có hiểu, ví dụ dòng If .Value <> "" Or i = lRow + 1 Then thì em hiểu lựa chọn dòng cuối của mỗi công việc, nhưng các thuộc tính, cách dùng các đối tượng trong VBA nhiều cái em chưa hiểu hết) Dauthivan hiểu nhầm rồi, cái này không gọi là thuật toán bạn ạ. Thuật toán là trình tự các bước thực hiện để giải một bài toán hay thực hiện một công việc nào đó tù lúc nhập dữ liệu đến khi ra được kết quả. Cái mà bạn nói ở trên chỉ là các câu lệnh mô phỏng lại thuật toán mà thôi. Hay chính là ngôn ngữ để ta giao tiếp với máy tính để máy tính hiểu được ta muốn làm gì? --------------------------------------------------------------------- Để làm bài toán này trước hết mình thường suy nghĩ nếu làm bằng bằng tay thì sẽ làm thế nào? - Đầu tiên mình sẽ dò trên cột A từ dưới lên, cứ gặp ô có giá trị (khác rỗng) thì thực hiện chèn dòng và điền nội dung. - Xác định xem dò như vậy đến khi nào thì dừng đây? Cái này chính là TÍNH DỪNG (HỮU HẠN) 1 đặc trưng THUẬT TOÁN - Xét đến các phát sinh :trong bài này có một vấn đề phát sinh là ta phải điền cả nội dung vào 2 ô cuối cùng của vùng dữ liệu trong khi ô điều kiện lại rỗng??? Định dạng lại dữ liệu sau khi chèn và điền nội dung cho đúng yêu cầu... ---------------------------------------------------------------------- Bạn đọc thử cái này xem có hiểu không nhé, HMT diễn giải theo ý hiểu của mình khi viết CODE PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range 'Do khai bao Clls la doi tuong Range nen khi gan gia tri cho bien doi tuong phai dung tu khoa set Set Clls1 = Cells(8, 8) ' Clls1 = H8 'Xac dinh dong dau tien cua vung du lieu fRow = 4 'Xac dinh dong cuoi cung cua vung du lieu lRow = Cells(65536, 3).End(xlUp).Row 'Duyet tu o cuoi cung len o dau tien For i = lRow + 1 To fRow + 2 Step -1 'Vi phai chen them 2 dong vao o cuoi cung nen ta phai cong them 1 vao lRow 'Neu duyet den tan fRow thi fRow thoa man khac rong no se chen them 2 dong (trong khi ta lai k can chen vao do) nen fRow + 2 With Cells(i, 1) If .Value <> "" Or i = lRow + 1 Then 'Thoa man dieu kien thi tai o co chi so dong la i,cot 1 mo rong 2 dong, chon ca 2 dong do va thuc hien lenh chen .Resize(2, 1).EntireRow.Insert 'Chen xong thi dien noi dung, tu o co chi so dong i, cot 1 di chuyen len tren 2 dong, dich sang phai 2 cot, mo rong kich thuoc cua vung ra 'Ban xem them thuoc tinh offset và resize nhe ' Noi dung chen duoc dat san o cells(8,8)=H8 nen ta gan value cho no thoi .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) 'Cai nay thi ghi macro la biet, he he .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next End Sub Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
hoamattroicoi đã viết: PHP: Sao chép. (Mặc dù thuật toán em có hiểu, ví dụ dòng If .Value <> "" Or i = lRow + 1 Then thì em hiểu lựa chọn dòng cuối của mỗi công việc, nhưng các thuộc tính, cách dùng các đối tượng trong VBA nhiều cái em chưa hiểu hết) Dauthivan hiểu nhầm rồi, cái này không gọi là thuật toán bạn ạ. Thuật toán là trình tự các bước thực hiện để giải một bài toán hay thực hiện một công việc nào đó tù lúc nhập dữ liệu đến khi ra được kết quả. Cái mà bạn nói ở trên chỉ là các câu lệnh mô phỏng lại thuật toán mà thôi. Hay chính là ngôn ngữ để ta giao tiếp với máy tính để máy tính hiểu được ta muốn làm gì? --------------------------------------------------------------------- Để làm bài toán này trước hết mình thường suy nghĩ nếu làm bằng bằng tay thì sẽ làm thế nào? - Đầu tiên mình sẽ dò trên cột A từ dưới lên, cứ gặp ô có giá trị (khác rỗng) thì thực hiện chèn dòng và điền nội dung. - Xác định xem dò như vậy đến khi nào thì dừng đây? Cái này chính là TÍNH DỪNG (HỮU HẠN) 1 đặc trưng THUẬT TOÁN - Xét đến các phát sinh :trong bài này có một vấn đề phát sinh là ta phải điền cả nội dung vào 2 ô cuối cùng của vùng dữ liệu trong khi ô điều kiện lại rỗng??? Định dạng lại dữ liệu sau khi chèn và điền nội dung cho đúng yêu cầu... ---------------------------------------------------------------------- Bạn đọc thử cái này xem có hiểu không nhé, HMT diễn giải theo ý hiểu của mình khi viết CODE PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range 'Do khai bao Clls la doi tuong Range nen khi gan gia tri cho bien doi tuong phai dung tu khoa set Set Clls1 = Cells(8, 8) ' Clls1 = H8 'Xac dinh dong dau tien cua vung du lieu fRow = 4 'Xac dinh dong cuoi cung cua vung du lieu lRow = Cells(65536, 3).End(xlUp).Row 'Duyet tu o cuoi cung len o dau tien For i = lRow + 1 To fRow + 2 Step -1 'Vi phai chen them 2 dong vao o cuoi cung nen ta phai cong them 1 vao lRow 'Neu duyet den tan fRow thi fRow thoa man khac rong no se chen them 2 dong (trong khi ta lai k can chen vao do) nen fRow + 2 With Cells(i, 1) If .Value <> "" Or i = lRow + 1 Then 'Thoa man dieu kien thi tai o co chi so dong la i,cot 1 mo rong 2 dong, chon ca 2 dong do va thuc hien lenh chen .Resize(2, 1).EntireRow.Insert 'Chen xong thi dien noi dung, tu o co chi so dong i, cot 1 di chuyen len tren 2 dong, dich sang phai 2 cot, mo rong kich thuoc cua vung ra 'Ban xem them thuoc tinh offset và resize nhe ' Noi dung chen duoc dat san o cells(8,8)=H8 nen ta gan value cho no thoi .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) 'Cai nay thi ghi macro la biet, he he .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next End Sub Nhấp chuột vào đây để mở rộng...
Đa tạ bác nhiều, xem xong em hiểu ah, buổi chiều em diễn đạt nhầm ah. Qua một số ví dụ từ hôm nọ đọc, nghiên cứu đến giờ em nhận thấy về cơ bản là em xác định trình tự giải quyết khá nhanh, chỉ có điều yếu tố mà em thiếu nhất kinh nghiệm thực tế, chưa có đủ các công cụ để thực hiện giao tiếp với máy (có ý tưởng nhưng không biết cụ thể hoá bằng lệnh như thế nào). Em sẽ cố gắng tận dụng dịp đón năm mới để trau dồi VBA, em rất mong nhận được sự giúp đỡ của mọi người. Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu
Trình độ của bác hiện giờ đã tương đối thành thạo rồi, trình của em còi lắm. Một số đối tượng em đọc còn chưa hiểu, bác có biết hiện giờ có sách nào hướng dẫn học tốt nhất về VBA không ? Chỉ giúp cho em biết để em mua về đọc Nhấp chuột vào đây để mở rộng...
Chưa chắc HMT thành thạo hơn bạn, trình độ của HMT về VBA cũng A,B,C thôi, chắc không hơn bạn là mấy. Có chăng thì HMT được học bài bản hơn bạn 1 chút vì HMT có được sự giúp đỡ rất nhiệt tình của 1 mem trên GPE. Người ấy đã dìu dắt HMT những bước đi chập chững đầu tiên đến với VBA, HMT thực sự rất biết ơn người bạn ấy. ============= Mình thấy bạn rất đam mê VBA, chịu khó post bài và hỏi bài nữa đó chính là bước khởi đầu tốt đẹp đó ============= Ngay như đoạn CODE mà HMT sửa khi có gợi ý của sư phụ ptm0412 cũng chưa hay lắm, vẫn có cách khác xóa đoạn CODE thừa mà không cần OR đi OR lại trong FOR bằng cách gán cho dòng cuối cùng cột 1 giá trị khác rỗng, sau đó thực hiện vòng FOR hết vòng FOR ta xóa giá trị đó đi ---> Dauthivan làm thử nhé! HMT làm thấy nó hay hay. Đôi lời chia sẻ cùng học hỏi, cùng tiến bộ! Lần chỉnh sửa cuối: 14/1/12 Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
hoamattroicoi đã viết: Chưa chắc HMT thành thạo hơn bạn, trình độ của HMT về VBA cũng A,B,C thôi, chắc không hơn bạn là mấy. Có chăng thì HMT được học bài bản hơn bạn 1 chút vì HMT có được sự giúp đỡ rất nhiệt tình của 1 mem trên GPE. Người ấy đã dìu dắt HMT những bước đi chập chững đầu tiên đến với VBA, HMT thực sự rất biết ơn người bạn ấy. ============= Mình thấy bạn rất đam mê VBA, chịu khó post bài và hỏi bài nữa đó chính là bước khởi đầu tốt đẹp đó ============= Ngay như đoạn CODE mà HMT sửa khi có gợi ý của sư phụ ptm0412 cũng chưa hay lắm, vẫn có cách khác xóa đoạn CODE thừa mà không cần OR bằng cách gán cho dòng cuối cùng cột 1 giá trị khác rỗng, sau đó thực hiện vòng FOR hết vòng FOR ta xóa giá trị đó đi ---> Dauthivan làm thử nhé! HMT làm thấy nó hay hay. Đôi lời chia sẻ cùng học hỏi, cùng tiến bộ! Nhấp chuột vào đây để mở rộng...
Em sẽ thử nghiên cứu làm xem, em chỉ cần những bài này đầu tiên làm kiểu gì miễn ra kết quả là mừng lắm rồi, sau này khi đã hiểu tương đối lúc đó mình sẽ có cái nhìn đầy đủ hơn, sau đó mới có thể đặt ra vấn đề tối ưu là làm cách nào nhanh, gọn nhất. Hôm nọ, tình cờ trên diễn đàn em mới biết cách đây khoảng 5 năm về trước thày Ndu96081631 cũng mới bắt đầu như bác bây giờ. Em cũng được biết những ngày đầu tiên khi thày Ndu96081631 bước vào diễn đàn GPE một trong những người thày của thày Ndu96081631 chính là thày Ptm0412. Khi nhìn lại bài toán trước kia do bản thân giải, giải thày Ndu96081631 viết vui đại ý là...đọc lại bài ngày xưa, không hiểu sao hồi đó...giải... ngu thế", mặc dù tư duy toán của thày Ndu96081631 rất sắc sảo, nhưng có lẽ khi đó thày chưa biết nhiều. Bây giờ, trình độ của thày Ndu96081631 và thày Ptm0412 đều ở mức siêu việt, hoàn hảo ở mức khó tưởng tượng. Em sẽ cố gắng để không phụ công của bác, của các thày, mọi người trên diễn đàn đã chỉ bảo, em hy vọng sang năm mới em sẽ tiếp thu nhiều cái mới, hạn chế hỏi những câu "ngố quá". Lần chỉnh sửa cuối: 14/1/12 Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu Xem thử CODE này nhé! Bạn thêm 2 dòng vào là được CODE! Cứ viết đi viết lại, viết sai sửa lại CODE, năng dùng Msgbox, F8 để kiểm tra các bước mình làm, dần dần mình sẽ vỡ ra được nhiều điều. Hoamattroicoi cũng thế đó! Mong bạn nhanh tiến bộ! Nếu rảnh nghiên cứu làm bài này với vòng lặp không xác định nhé! Cùng học hỏi, cùng tiến bộ. Thanks! PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range Set Clls1 = Cells(8, 8) fRow = 4 lRow = Cells(65536, 3).End(xlUp).Row Cells(lRow + 1, 1).Value = "hoamattroicoi" For i = lRow + 1 To fRow + 2 Step -1 With Cells(i, 1) If .Value <> "" Then .Resize(2, 1).EntireRow.Insert .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next Cells([A65536].End(xlUp).Row, 1).Value = "" End Sub Upvote 0 concogia

concogia

Gội rồi mới Cạo
Tham gia 17/9/09 Bài viết 3,412 Được thích 6,881 Với bài này, ta đã xác định ở cột A, khi gặp cell có dữ liệu thì chèn 2 dòng & gán giá trị, nếu Bé Còi chơi kiểu "nhảy cà tưng" từ dưới lên (sử dụng Do....Loop While & End(XlUp)) thì vòng lặp chỉ nhảy 3 bước là xong, nếu dùng For ...Next phải chạy đủ số dòng. Mình chỉ cảm giác như thế thôi chứ mình hổng biết làm, nếu Còi không làm được thì nhờ Lão Chết Tiệt làm giúp nhé. Hihi Híc Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
hoamattroicoi đã viết: Xem thử CODE này nhé! Bạn thêm 2 dòng vào là được CODE! Cứ viết đi viết lại, viết sai sửa lại CODE, năng dùng Msgbox, F8 để kiểm tra các bước mình làm, dần dần mình sẽ vỡ ra được nhiều điều. Nhấp chuột vào đây để mở rộng...
Sau khi được các thày Concogia, Ptm0412 chỉ bảo em đã vận dụng khá thuần thục chức năng F8, thế còn cách sử dụng chức năngMsgbox để kiểm tra thế nào ah? Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu
Dauthivan đã viết: Sau khi được các thày Concogia, Ptm0412 chỉ bảo em đã vận dụng khá thuần thục chức năng F8, thế còn cách sử dụng chức năngMsgbox để kiểm tra thế nào ah? Nhấp chuột vào đây để mở rộng...
Sử dụng Msgbox để hiện kết quả ra màn hình, kiểm tra các bước của thuật toán rất hay, Bạn tham khảo cách sử dụng của Msgbox theo link này nhé, bài #20! Sử dụng MSGBOX
Với bài này, ta đã xác định ở cột A, khi gặp cell có dữ liệu thì chèn 2 dòng & gán giá trị, nếu Bé Còi chơi kiểu "nhảy cà tưng" từ dưới lên (sử dụng Do....Loop While & End(XlUp)) thì vòng lặp chỉ nhảy 3 bước là xong, nếu dùng For ...Next phải chạy đủ số dòng. Mình chỉ cảm giác như thế thôi chứ mình hổng biết làm, nếu Còi không làm được thì nhờ Lão Chết Tiệt làm giúp nhé. Hihi Híc Nhấp chuột vào đây để mở rộng...
Chính xác là như vậy, bé CÒI cũng có gợi ý sử dụng vòng lặp không xác định kết hợp với thuộc tính END() ở bài trên nhưng thấy bạn Dauthivan viết như thế này : Nguyên văn bởi Dauthivan :"Em chỉ cần những bài này đầu tiên làm kiểu gì miễn ra kết quả là mừng lắm rồi, sau này khi đã hiểu tương đối lúc đó mình sẽ có cái nhìn đầy đủ hơn, sau đó mới có thể đặt ra vấn đề tối ưu là làm cách nào nhanh, gọn nhất." nên làm nhiều cách để bạn ấy biết rút gọn CODE như thế nào sau đó mới tối ưu thuật toán. bé CÒI cũng đang học bằng phương pháp đó! Vậy chi bằng hãy để bạn ấy luyện công rồi làm thử bài này bằng cách ấy xem thế nào? Chứ bé CÒI hay sư phụ ptm0412 đá típ nữa thì bạn ấy hết cửa suy nghĩ ạ, he he! Dauthivan cố lên !!!Thanks! Lần chỉnh sửa cuối: 15/1/12 Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
hoamattroicoi đã viết: Sử dụng Msgbox để hiện kết quả ra màn hình, kiểm tra các bước của thuật toán rất hay, Bạn tham khảo cách sử dụng của Msgbox theo link này nhé, bài #20! Sử dụng MSGBOX Chính xác là như vậy, bé CÒI cũng có gợi ý sử dụng vòng lặp không xác định kết hợp với thuộc tính END() ở bài trên nhưng thấy bạn Dauthivan viết như thế này : Nguyên văn bởi Dauthivan :"Em chỉ cần những bài này đầu tiên làm kiểu gì miễn ra kết quả là mừng lắm rồi, sau này khi đã hiểu tương đối lúc đó mình sẽ có cái nhìn đầy đủ hơn, sau đó mới có thể đặt ra vấn đề tối ưu là làm cách nào nhanh, gọn nhất." nên làm nhiều cách để bạn ấy biết rút gọn CODE như thế nào sau đó mới tối ưu thuật toán. bé CÒI cũng đang học bằng phương pháp đó! Vậy chi bằng hãy để bạn ấy luyện công rồi làm thử bài này bằng cách ấy xem thế nào? Chứ bé CÒI hay sư phụ ptm0412 đá típ nữa thì bạn ấy hết cửa suy nghĩ ạ, he he! Dauthivan cố lên !!!Thanks! Nhấp chuột vào đây để mở rộng...
Vậy, bác khoan hãy đưa lời giải lên nhé, cho em thời gian suy nghĩ một chút xem em có giải quyết được không, nếu có vướng mắc gì em lại xin phép được hỏi sau ah. Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu
Dauthivan đã viết: Vậy, bác khoan hãy đưa lời giải lên nhé, cho em thời gian suy nghĩ một chút xem em có giải quyết được không, nếu có vướng mắc gì em lại xin phép được hỏi sau ah. Nhấp chuột vào đây để mở rộng...
Ngày hôm nay chưa nghĩ ra thì ngày mai nghĩ tiếp, hôm nay buồn chưa nghĩ ra, mai vui nghĩ tiếp...---> Chả nhẽ mãi mãi không ra??? Không thế nào , đúng không? Dauthivan cố lên nhé, mình tin bạn có thể làm được vì bài này rất cơ bản mà, cứ lần theo những gợi ý ở trên là là được thôi! Thanks! Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
Dauthivan đã viết: Sau khi được các thày Concogia, Ptm0412 chỉ bảo em đã vận dụng khá thuần thục chức năng F8, thế còn cách sử dụng chức năngMsgbox để kiểm tra thế nào ah? Nhấp chuột vào đây để mở rộng...
Kiểm tra thế nào à? Muốn biết trạng thái, giá trị của cái gì, vào lúc nào thì dùng Msgbox cho hiện ra cái đó. Thí dụ muốn biết sau khi chạy câu lệnh nào đó, biến abc có giá trị bao nhiêu, hoặc giá trị Arr(s, 3) là bao nhiêu, chỉ việc thêm câu lệnh: Msgbox abc & chr(10) & Arr(s, 3) Tuy vậy tôi ít dùng cách này. Có nhiều cách khác hay hơn vì 1 là không phải nhấn nút OK đóng Msgbox, 2 là xem giá trị của biến tại bất kỳ thời điểm nào mình muốn. 1. Dùng F8 như các bài trước đây Cò già nói, nhưng không cần mở cửa sổ Locals Windows. Khi 1 dòng code bị tô vàng, nghĩa là code đang bị pause ngay trước khi thực thi dòng lệnh đó. Thử rà chuột vào các biến xem, rà tới biến nào, nó hiện giá trị biến đó. 2. Dùng F8 bị bắt buộc 1 chuyện là mỗi dòng code đều bị ngưng lại. Nếu chỉ muốn xem giá trị biến nào đó trước và sau khi thực thi dòng lệnh thứ 10, bỏ qua các dòng từ 1 đến 9, hãy đánh dấu dòng lệnh 10 và 11 bằng cách click vào lề code, nguyên dòng code sẽ bị tô đỏ sẫm. (Bên topic kia dauthivan đã hòi). Bây giờ chạy code, nó sẽ chạy cái vèo đến dòng 10 và ngưng lại, hãy rà chuột xem giá trị biến lần 1. Nhấn F5, dòng 10 thực thi, code pause tại dòng 11, xem giá trị biến lần 2. Việc này có ích khi ta muốn biết 1 câu lệnh có thực thi đúng ý ta muốn hay không. Dĩ nhiên việc này có thể dùng Msgbox, nhưng mất công nhấn OK. 3. Kết hợp cả cái hay của Msgbox, cả cái hay của đánh dấu tô đỏ code tại dòng mình muốn, (chứ không phải mỗi dòng lệnh mỗi ngưng như F8), mà không cần nhấn OK của MSgbox. Đó là dùng cửa sổ immediate và câu lện Debug.Print Đặc biệt là khi ta muốn biết giá trị của 3 biến a, b, c trong 1 vòng lặp For, sau mỗi vòng lặp nó thay đổi thế nào. Chả lẽ For i = 1 to 100, nhấn OK 100 lần, hoặc rà chuột 100 x 3 lần? Dùng câu lệnh sau trong vòng lặp: Debug.Print i, a, b, c và cho code chạy thoải mái, không ngừng. Sau đó xem tất cả những gì hiện ra trong cửa sổ immediate! Lần chỉnh sửa cuối: 15/1/12 Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
hoamattroicoi đã viết: Công việc bận quá giờ mới ghé diễn đàn được, hoa còi thử làm theo gợi ý của sư phụ, thanks sư phụ! PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long Dim Clls1 As Range Set Clls1 = Cells(8, 8) fRow = 4 lRow = Cells(65536, 3).End(xlUp).Row For i = lRow + 1 To fRow + 2 Step -1 With Cells(i, 1) If .Value <> "" Or i = lRow + 1 Then .Resize(2, 1).EntireRow.Insert .Offset(-2, 2).Resize(2).Value = Clls1.Resize(2).Value With .Offset(-2, 2).Resize(2) .HorizontalAlignment = xlLeft .Font.FontStyle = "Bold" End With End If End With Next End Sub Nhấp chuột vào đây để mở rộng...
Hình như em đang phức tạp hoá vấn đề hoặc do em chưa hiểu đúng bản chất: Em đang suy nghĩ sau khi i=26, sau thi thực hiện xong lệnh .Resize(2, 1).EntireRow.Insert thì lRow =31? (không phải = 29?) vì bản chất vùng được mở rộng thêm 2 dòng mà. Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant lrow xác định từ trước bằng câu lệnh lRow = Cells(65536, 3).End(xlUp).Row vậy nếu không gán giá trị khác cho biến lRow, thì lRow có thay đổi không? Vả lại, hãy thử đứng ở dòng 29, tô 2 dòng 29, 30, nhấn nút insert row, rồi xem vị trí đứng (dòng 29) có bị thay đổi không? Upvote 0 thanhlanh

thanhlanh

Thành viên tích cực
Tham gia 21/2/08 Bài viết 858 Được thích 1,211 Mình thì nghĩ dùng vòng lặp For ... Next quét từ trên xuống: For i = 5 To [C65536].End(xlUp).Row + 2 * [A65536].End(xlUp).Value ....... Next Vì cột số thứ tự đã điền đầy đủ Mà sao ở đây chưa có chi phí các dòng : Chi phí trực tiếp khác và cộng chi phí trực tiếp nhỉ? Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Đối với việc chèn dòng, xoá dòng, tính tổng phía dưới (Subtotal nằm trên), ... tốt nhất là nên quét ngược từ dưới lên, lý do: - Số vòng lặp cố định và ít hơn vì không cộng thêm - Số cộng thêm có nhiều những trường hợp không biết trước (bài này biết trước = 4 x 2 = 8) Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
concogia đã viết: Với bài này, ta đã xác định ở cột A, khi gặp cell có dữ liệu thì chèn 2 dòng & gán giá trị, nếu Bé Còi chơi kiểu "nhảy cà tưng" từ dưới lên (sử dụng Do....Loop While & End(XlUp)) thì vòng lặp chỉ nhảy 3 bước là xong, nếu dùng For ...Next phải chạy đủ số dòng. Mình chỉ cảm giác như thế thôi chứ mình hổng biết làm, nếu Còi không làm được thì nhờ Lão Chết Tiệt làm giúp nhé. Hihi Híc Nhấp chuột vào đây để mở rộng...
Nếu bây giờ chỉ xét đến bài toán chèn dòng thôi, Code của bác hoamattroicoi lúc này là: PHP: Sao chép. Sub inSertRow() Dim fRow, lRow Dim i As Long fRow = 4 lRow = Cells(65536, 3).End(xlUp).Row For i = lRow + 1 To fRow + 2 Step -1 With Cells(i, 1) If .Value <> "" Or i = lRow + 1 Then .Resize(2, 1).EntireRow.Insert End If End With Next End Sub Cái khó theo em là khi chuyển sang Do Loop While bản thân Loop While nó bị ràng buộc 2 điều kiện: Cells(i, 1).Value <> "" và i, nên em không biết phải viết thế nào. (Em làm từ sáng không được, em xin mọi người giới thiệu giúp em một bài toán mẫu có thể làm theo cả 2 cách này để em thực hành cho quen, sau đó em sẽ vận dụng sang bài này) --------------- .Resize(2, 1).EntireRow.Insert tại sao không có vế phải (=xlDown chẳng hạn) thì làm sao hiểu được kết quả dòng được chèn sẽ lên trên hay xuống dưới nhỉ? Hay là theo mặc định các dòng được chèn mới sẽ nằm ở trên ah? Lần chỉnh sửa cuối: 16/1/12 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
Dauthivan đã viết: --------------- .Resize(2, 1).EntireRow.Insert tại sao không có vế phải (=xlDown chẳng hạn) thì làm sao hiểu được kết quả dòng được chèn sẽ lên trên hay xuống dưới nhỉ? Hay là theo mặc định các dòng được chèn mới sẽ nằm ở trên ah? Nhấp chuột vào đây để mở rộng...
Bạn thử record macro quá trình insert row xem có bao giờ xuất hiện xlDown hay cái gì khác hay không? Rồi thử insert Column? Và không cần record macro, thử insert cell, trên hộp thoại hiện ra có cái Up nào không? Chả lẽ bạn chưa bao giờ insert cell, hoặc chưa bao giờ ngó cái hộp thoại insert xem nó có cái gì ở trên? Tôi nghĩ những chuyện đơn giản này tự mình thử và tìm ra câu trả lời vẫn được, mà lại còn nhớ dai nữa. Trong số những người gọi tôi là thầy, có 1 người tôi chỉ toàn mắng. Bởi vì tôi biết đối với người này, bị mắng sẽ nhớ dai hơn. Còn bạn? Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu Một ví dụ nhỏ về chèn dòng
Dauthivan đã viết: Cái khó theo em là khi chuyển sang Do Loop While bản thân Loop While nó bị ràng buộc 2 điều kiện: Cells(i, 1).Value "" và i, nên em không biết phải viết thế nào. (Em làm từ sáng không được, em xin mọi người giới thiệu giúp em một bài toán mẫu có thể làm theo cả 2 cách này để em thực hành cho quen, sau đó em sẽ vận dụng sang bài này) Nhấp chuột vào đây để mở rộng...
Dùng Do While... Loop PHP: Sao chép. Sub InsertR1() Dim lRow As Long Application.ScreenUpdating = False lRow = Cells(65536, 2).End(xlUp).Row Cells(lRow, 1).Select Do While ActiveCell.Row > [A1].End(xlDown).Row ActiveCell.End(xlUp).Select With ActiveCell .Resize(2, 1).EntireRow.Insert .Offset(-2, 1).Resize(2, 1).Value = Cells(1, 4).Resize(2).Value End With Loop Application.ScreenUpdating = True End Sub Dùng vòng FOR : PHP: Sao chép. Sub InsertR2() Dim i As Long Dim lRow As Long Dim fRow As Long Application.ScreenUpdating = False fRow = [A1].End(xlDown).Row lRow = Cells(65536, 2).End(xlUp).Row For i = lRow To fRow Step -1 With Cells(i, 1) If .Value <> "" Then .Resize(2, 1).EntireRow.Insert .Offset(-2, 1).Resize(2, 1).Value = Cells(1, 4).Resize(2).Value End If End With Next Application.ScreenUpdating = True End Sub Dùng Do...Loop Until : PHP: Sao chép. Sub InsertR3() Dim lRow As Long Application.ScreenUpdating = False lRow = Cells(65536, 2).End(xlUp).Row Cells(lRow, 1).Select Do ActiveCell.End(xlUp).Select With ActiveCell .Resize(2, 1).EntireRow.Insert .Offset(-2, 1).Resize(2, 1).Value = Cells(1, 4).Resize(2).Value End With Loop Until ActiveCell.Row = [A1].End(xlDown).Row - 2 Application.ScreenUpdating = True End Sub Test lại với Sub DeleteR : PHP: Sao chép. Sub deleteR() Dim fRow As Long Application.ScreenUpdating = False fRow = Cells(1, 2).End(xlDown).Row Cells(fRow, 1).End(xlUp).Select Do ActiveCell.End(xlDown).Select ActiveCell.Offset(-2).Resize(2).EntireRow.Delete Loop Until ActiveCell.Row = [A65536].End(xlUp).Row + 2 Application.ScreenUpdating = True End Sub hoamattroicoi viết đơn giản thế này thôi, cũng bằng những kiến thức mà hoamattroicoi học được, CODE viết còn non nớt, hy vọng nó có ích cho bạn. Chúc bạn học tốt ! Xem xong cái này thì quay lại xử cái kia nhé!

File đính kèm

  • Hoc CODE.xls Hoc CODE.xls 37.5 KB · Đọc: 83
Lần chỉnh sửa cuối: 17/1/12 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Do While chỉ cần vầy: PHP: Sao chép. Do While ActiveCell.Row > [A1].End(xlDown).Row Do ... Loop Until chỉ cần vầy: PHP: Sao chép. Loop Until ActiveCell.Row <= [A1].End(xlDown).Row Khỏi -2 Lần chỉnh sửa cuối: 16/1/12 Upvote 0 TrungChinhs

TrungChinhs

Thành viên tích cực
Tham gia 18/2/08 Bài viết 1,475 Được thích 2,470 Nghề nghiệp Công chức Thêm kiểu "cây nhà lá vườn" để bạn tham khảo. Muốn thêm, bớt khoản chi phí nào thì bạn vào cột C của Sheet Chi phi để sửa. Có chỗ nào tếu thì thông cảm nha ! (mất ngủ vọc chơi thôi) Mã: Sao chép. Sub ThemChiPhi() Application.ScreenUpdating = False On Error Resume Next ChiPhi = Sheets("Chi phi").[c:c].SpecialCells(2).Address For Each cls In Range("a5:a" & [c65000].End(3).Row) If cls > 0 And cls(0, 5) > 0 Then cls.Resize(Range(ChiPhi).Rows.Count).EntireRow.Insert Sheets("Chi phi").Range(ChiPhi).Copy cls(-Range(ChiPhi).Rows.Count + 1, 3) End If Next If [c65000].End(3)(1, 3) > 0 Then Sheets("Chi phi").Range(ChiPhi).Copy [c65000].End(3)(2) End Sub

File đính kèm

  • ThemChiPhi.rar ThemChiPhi.rar 15.5 KB · Đọc: 71
Upvote 0 ChanhTQ@

ChanhTQ@

0901452không62
Tham gia 5/9/08 Bài viết 4,254 Được thích 4,861 Còn đây là do không nướng được & xin nhờ các bạn dịch giúp sang tiếng Việt có dấu! PHP: Sao chép. Option Explicit Sub gpeAdd2RowsForNum() Dim Rng As Range, Cls As Range Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 1) For Each Cls In Rng If Cls.Value > 1 Then Range(Cls, Cls.Offset(1)).EntireRow.Insert Cls.Offset(-2, 2).Value = "Chi phí chung:" Cls.Offset(-1, 2).Value = "Thu nh" & [iU2].Value End If Next Cls End Sub Lần chỉnh sửa cuối: 17/1/12 Upvote 0 D

Dauthivan

Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327
ptm0412 đã viết: Bạn thử record macro quá trình insert row xem có bao giờ xuất hiện xlDown hay cái gì khác hay không? Rồi thử insert Column? Và không cần record macro, thử insert cell, trên hộp thoại hiện ra có cái Up nào không? Chả lẽ bạn chưa bao giờ insert cell, hoặc chưa bao giờ ngó cái hộp thoại insert xem nó có cái gì ở trên? Tôi nghĩ những chuyện đơn giản này tự mình thử và tìm ra câu trả lời vẫn được, mà lại còn nhớ dai nữa. Trong số những người gọi tôi là thầy, có 1 người tôi chỉ toàn mắng. Bởi vì tôi biết đối với người này, bị mắng sẽ nhớ dai hơn. Còn bạn? Nhấp chuột vào đây để mở rộng...
Em rất mong được thày mắng thật nhiều, có thế em mới tiến bộ được chứ ah. Cái vụ Insert chẳng là trước kia để chèn dòng em toàn chọn cả dòng sau đó bấm phím tắt (Ctrl và dấu +), em ghi Macro thì em mới thấy có cái này (=xlDown). Được thày và bác Huuthang-bd chỉ bảo, em đã nhận ra trước tiên phải nắm vững cách dùng những thành phần cơ bản nhất, phải tự mày mò tìm hiểu mới có thể nhớ lâu được. Em vừa ra hiệu sách mua được sách dạy lập trình trong Excel của thày Phan Tự Hướng, em sẽ tự mình đào tạo lại toàn bộ các kiến thức cơ bản mà mình còn lơ mơ thày ah. Sau 1, 2 ngày nữa, nếu vấn đề gì mà sau khi bản thân tự tìm hiểu chưa được, em sẽ xin phép được nhờ mọi người. Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,809 Được thích 37,517 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Hic, thêm 1 người xin được nghe mắng, làm như mắng không mệt ấy. Nói vậy thôi, yên tâm, sẽ được nghe mắng nhiều và ngày càng bị mắng nặng hơn. Lần chỉnh sửa cuối: 17/1/12 Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,775 Nghề nghiệp Công nhân vệ sinh số liệu
Dauthivan đã viết: Em rất mong được thày mắng thật nhiều, có thế em mới tiến bộ được chứ ah. Nhấp chuột vào đây để mở rộng...
Ui za? Phải làm sao để không bị mắng chứ, ai lại thích bị mắng như thế bao giờ, he he! Upvote 0 S

satthudabac

Thành viên mới
Tham gia 14/3/11 Bài viết 22 Được thích 0
TrungChinhs đã viết: Thêm kiểu "cây nhà lá vườn" để bạn tham khảo. Muốn thêm, bớt khoản chi phí nào thì bạn vào cột C của Sheet Chi phi để sửa. Có chỗ nào tếu thì thông cảm nha ! (mất ngủ vọc chơi thôi) Mã: Sao chép. Sub ThemChiPhi() Application.ScreenUpdating = False On Error Resume Next ChiPhi = Sheets("Chi phi").[c:c].SpecialCells(2).Address For Each cls In Range("a5:a" & [c65000].End(3).Row) If cls > 0 And cls(0, 5) > 0 Then cls.Resize(Range(ChiPhi).Rows.Count).EntireRow.Insert Sheets("Chi phi").Range(ChiPhi).Copy cls(-Range(ChiPhi).Rows.Count + 1, 3) End If Next If [c65000].End(3)(1, 3) > 0 Then Sheets("Chi phi").Range(ChiPhi).Copy [c65000].End(3)(2) End Sub Nhấp chuột vào đây để mở rộng...
Mình thấy bạn viết rất hay, nhưng nếu ta xóa dòng dòng ở giữa trong 3 dòng thì nó không chèn lại nữa.thanks Upvote 0 Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.

Bài viết mới nhất

K Các nút Buttom, Combobox, Textbox bị thay đổi kích thước ... (2 người xem)
  • kaoehtkid
  • Thứ hai lúc 19:04
  • Những vấn đề chung
Trả lời 13 Đọc 248 5 phút trước ongke0711 ongke0711 HeSanbi Thuật ngữ "Đối chiếu Unicode" quan trọng trong việc xử lý chuỗi ký tự (1 người xem)
  • HeSanbi
  • Thứ bảy lúc 15:41
  • Xử lý chuỗi ký tự
Trả lời 2 Đọc 197 Hôm nay lúc 17:38 HeSanbi HeSanbi huuthang_bd Cùng xây dựng file Gia Phả
    • Thích
  • huuthang_bd
  • 30/12/13
  • Xây dựng ứng dụng.
Trả lời 43 Đọc 21K Hôm nay lúc 15:48 Maika8008 Maika8008 Nguyenkhang2404 Tính định mức sản phẩm
    • Chấp nhận
  • Nguyenkhang2404
  • 24/7/25
  • Hàm và công thức Excel
Trả lời 11 Đọc 896 Hôm nay lúc 14:27 nguyenanhtruong2409 N T Lọc dự liệu với hai điều kiện
  • tiny1010
  • 16/3/10
  • Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
Trả lời 18 Đọc 7K Hôm nay lúc 14:11 nguyenanhtruong2409 N D
  • Question Question
Tách dòng tự động theo điều kiện bằng VBA
    • Cười
  • duongnhuxuyen
  • 12/12/25
  • Lập Trình với Excel
Trả lời 17 Đọc 393 Hôm nay lúc 12:04 ptm0412 ptm0412 P Lỗi hàm VBA phải add-in sau mỗi lần mở file (1 người xem)
  • phamdinh.huy.aladin@gmail
  • Thứ hai lúc 10:18
  • Hàm và công thức Excel
Trả lời 7 Đọc 224 Hôm nay lúc 08:11 minhnghia123 M PhanTuHuong Nếu diễn đàn GPE đóng cửa? (1 người xem)
    • Thích
    • Yêu thích
  • PhanTuHuong
  • Chủ nhật lúc 23:46
  • Thư giãn
Trả lời 18 Đọc 611 Hôm nay lúc 00:08 Gà Con yêu VBA Gà Con yêu VBA M Sai lệch vùng dữ liệu khi tạo Name Range bằng VBA
    • Buồn
  • Mr_Siro
  • Thứ tư lúc 10:57
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 5 Đọc 140 Hôm qua, lúc 13:23 Mr_Siro M P Tìm giá trị tồn kho đầu ngày
  • ptthuongtn
  • Thứ tư lúc 15:15
  • Hàm và công thức Excel
Trả lời 3 Đọc 141 Hôm qua, lúc 11:22 Duy Tùng 9x Duy Tùng 9x skygatevn Xin giúp đỡ về việc áp dụng hàm phù hợp để phân tách dữ liệu
  • skygatevn
  • Thứ tư lúc 11:59
  • Hướng dẫn sử dụng các hàm trong Excel
Trả lời 3 Đọc 105 Thứ tư lúc 13:52 skygatevn skygatevn PhanTuHuong Bán sách Excel nâng cao để ủng hộ đồng bào bão lũ năm 2025!
    • Yêu thích
  • PhanTuHuong
  • 10/12/25
  • Câu lạc bộ hoạt động xã hội
Trả lời 5 Đọc 322 Thứ tư lúc 12:43 GPE-Trợ Lý GPE-Trợ Lý D Xin giúp.......Kết hợp countifs và Sumproduct để đếm dữ liệu và tính số lượng tổng không trùng lặp với nhiều điều kiện
  • dieppk.nb92
  • Chủ nhật lúc 01:22
  • Hàm và công thức Excel
Trả lời 14 Đọc 429 Thứ tư lúc 10:20 dieppk.nb92 D GPE-Trợ Lý CHUNG TAY HƯỚNG VỀ MIỀN TRUNG NĂM 2025
    • Thích
  • GPE-Trợ Lý
  • 24/11/25
  • Câu lạc bộ hoạt động xã hội
Trả lời 12 Đọc 901 Thứ tư lúc 07:38 PhanTuHuong PhanTuHuong HeSanbi
  • Đã giải quyết
WeatherXL - Ứng dụng lấy dữ liệu Thời tiết siêu nhanh (***Đang phát triển lại) (1 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • 30/5/20
  • Lập Trình với Excel
Trả lời 92 Đọc 27K Thứ ba lúc 19:57 Maika8008 Maika8008 ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (1 người xem)
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
4 5 6 Trả lời 580 Đọc 83K Thứ ba lúc 08:39 pycckuu410 pycckuu410 E
  • Đã giải quyết
VBA code thay thế cho pivot-table lấy top 10, bottom 10
    • Thích
  • eagle12
  • 8/12/25
  • Lập Trình với Excel
Trả lời 24 Đọc 590 Thứ hai lúc 16:19 eagle12 E H tìm kiếm nội dung liên kết giữa cac bảng , cac sheet trong excel
  • H_P
  • Thứ bảy lúc 14:23
  • Tìm kiếm, dò tìm và tham chiếu
Trả lời 2 Đọc 155 Thứ hai lúc 05:30 DeTong D N Công thức trích xuất riêng các ký tự trong chuỗi họ tên
  • Ngựa con 2002
  • Thứ bảy lúc 23:07
  • Xử lý chuỗi ký tự
Trả lời 7 Đọc 190 Chủ nhật lúc 18:57 Ngựa con 2002 N Q Nhờ các chị cho em xin công thức đếm bản ghi loại bỏ dữ liệu trùng lặp với nhiều điều kiện
  • QUANSUNG
  • Thứ bảy lúc 10:55
  • Hàm và công thức Excel
Trả lời 2 Đọc 173 Chủ nhật lúc 00:02 dungpham01 D Xem thêm… Chia sẻ: Facebook X Bluesky LinkedIn Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • Maika8008 37
  • thanthanhan 22
  • dungpham01 19
  • ongke0711 19
  • eagle12 16
  • nguyenanhtruong2409 16
  • ptm0412 16
  • Phan Thế Hiệp 13
  • HUONGHCKT 12
  • vic_it 11
  • nhhnam 10
  • pycckuu410 10
  • Vũ Hải Sơn 9
  • HeSanbi 9
  • dieppk.nb92 8
  • Gà Con yêu VBA 8
  • bsbnhh 7
  • duongnhuxuyen 7
  • Hana2610 6
  • kaoehtkid 6

Thành viên có điểm tương tác cao nhất tháng

  • Phan Thế Hiệp 64
  • Maika8008 30
  • thanthanhan 18
  • ongke0711 17
  • ptm0412 16
  • HeSanbi 12
  • dungpham01 11
  • HUONGHCKT 9
  • eagle12 9
  • Cúc Hr 8
  • dieppk.nb92 6
  • Mr.hieudoanxd 5
  • befaint 5
  • SA_DQ 5
  • pycckuu410 5
  • Phuocam 4
  • nguyenanhtruong2409 4
  • nhhnam 2
  • Mr_Siro 2
  • Gà Con yêu VBA 2

Thời gian đếm ngược.

000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Chèn Dòng Có điều Kiện Trong Excel