Trang chủ
Bài viết mới
Diễn đàn
Bài mới trên hồ sơ
Hoạt động mới nhất
VIDEO
Mùa Tết
Văn Học Trẻ
Văn Học News
Media
New media
New comments
Search media
Đại Học
Đại cương
Chuyên ngành
Triết học
Kinh tế
KHXH & NV
Công nghệ thông tin
Khoa học kĩ thuật
Luận văn, tiểu luận
Phổ Thông
Lớp 12
Ngữ văn 12
Lớp 11
Ngữ văn 11
Lớp 10
Ngữ văn 10
LỚP 9
Ngữ văn 9
Lớp 8
Ngữ văn 8
Lớp 7
Ngữ văn 7
Lớp 6
Ngữ văn 6
Tiểu học
Thành viên
Thành viên trực tuyến
Bài mới trên hồ sơ
Tìm trong hồ sơ cá nhân
Credits
Transactions
Xu: 0
Đăng nhập
Đăng ký
Có gì mới?
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
Bởi:
Hoạt động mới nhất
Đăng ký
Menu
Đăng nhập
Đăng ký
Install the app
Cài đặt
Chào mừng Bạn tham gia Diễn Đàn VNKienThuc.com -
Định hướng Forum
Kiến Thức
- HÃY TẠO CHỦ ĐỀ KIẾN THỨC HỮU ÍCH VÀ CÙNG NHAU THẢO LUẬN Kết nối:
VNK X
-
VNK groups
| Nhà Tài Trợ:
BhnongFood X
-
Bhnong groups
-
Đặt mua Bánh Bhnong
CÔNG NGHỆ
Công Nghệ Thông Tin
Thủ Thuật Tin học
Hướng dẫn: Làm thế nào để tạo 1 công thức cho nhiều Sheet?
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
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
.
Trả lời chủ đề
Nội dung
<blockquote data-quote="uocmo_kchodoi" data-source="post: 177420" data-attributes="member: 165510"><p>Xin chào các bạn, chắc hẳn những bạn thường xuyên sử dụng Excel đã ít nhiều gặp trường hợp có 1 file Excel với rất nhiều Sheet khác nhau nhưng cấu trúc phần tiêu đề giống hệt nhau (cấu trúc giống nhau), chỉ khác nhau ở số lượng dòng dữ liệu trên mỗi sheet. Nếu phải làm từng Sheet một sẽ rất mất thời gian phải không? Mình sẽ hướng dẫn các bạn cách đặt công thức và chạy công thức cho tất cả các sheet này (đương nhiên công thức cho các cột ở các sheet khác nhau cũng cùng một cấu trúc). Vì công thức chạy bằng VBA nên nếu bạn chưa biết cách sử dụng VBA bạn có thể xem tại link này nhé <a href="https://vnkienthuc.com/vba-la-gi-huong-dan-chay-code-vba-va-cach-them-cac-add-ins-trong-excel.t77197/" target="_blank">https://vnkienthuc.com/vba-la-gi-huong-dan-chay-code-vba-va-cach-them-cac-add-ins-trong-excel.t77197/</a></p><p></p><p>Mình lấy ví dụ cho dễ hiểu nhé. Giả sử mình có file Excel là bảng điểm của 3 lớp với mỗi sheet là 1 lớp (đây là ví dụ mang tính chất tham khảo chứ bình thường không ai bố trí dữ liệu như thế này các bạn ạ). Trong đó cấu trúc của các sheet là giống hệt nhau, chỉ khác nhau ở dữ liệu các dòng và số lượng các dòng (các lớp khác nhau sẽ có số lượng học viên khác nhau).</p><p></p><p>Sheet LopA có 5 học viên như hình dưới</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct1.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Sheet LopB có 4 học viên như hình dưới</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct2.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Sheet LopC có 10 học viên như hình dưới</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct3.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Và Sheet LopD có 5 học viên như hình dưới</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct4.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Với chỉ 5 sheet này, để tính điểm trung bình, với mỗi sheet tại ô H6 các bạn chỉ cần nhập công thức ở dòng dữ liệu đầu tiên, sau đó kéo xuống hết dữ liệu sẽ ra kết quả. Tuy nhiên đây chỉ là một ví dụ 5 sheet, giả sử file excel không phải có 5 sheet mà có tới hàng trăm sheet thì các bạn làm như thế nào?</p><p></p><p>Với bạn nào biết cách nhập nhanh dữ liệu đồng thời cho nhiều Sheet, các bạn sẽ thực hiện gộp tất cả các sheet thành 1 nhóm (group – click chọn tên sheet đầu tiên, giữ phím Shift rồi click chọn tên sheet cuối cùng) rồi nhập công thức vào ô H6, lúc này tất cả ô H6 của tất cả các sheet sẽ được nhập công thức tính điểm trung bình.</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct5.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Nhưng lúc này, làm thế nào để điền đầy công thức của các dòng tiếp theo trong các sheet? Nếu vẫn đang Group các sheet mà kéo công thức tại Sheet LopA thì điều gì sẽ xảy ra? Lúc này xảy ra 3 trường hợp</p><ul> <li data-xf-list-type="ul">Trường hợp thứ nhất, các sheet có số lượng dữ liệu (bản ghi) ít hơn so với Sheet LopA (trong ví dụ này sẽ là Sheet LopB), sẽ xuất hiện các dòng chứa công thức thừa (dòng xuất hiện lỗi #DIV/0!) như hình dưới</li> </ul> <p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct6.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><ul> <li data-xf-list-type="ul">Trường hợp thứ 2 là Sheet có số dòng dữ liệu (bản ghi) nhiều hơn so với số dòng dữ liệu của Sheet LopA (Trong ví dụ này là Sheet LopC), các dòng có chỉ số lớn hơn chỉ số dòng lớn nhất của Sheet LopA sẽ không được điền công thức như hình dưới</li> </ul> <p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct7.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><ul> <li data-xf-list-type="ul">Và trường hợp cuối cùng, các sheet có số dòng dữ liệu (bản ghi) bằng số dòng dữ liệu của Sheet LopA sẽ được điền công thức đầy đủ như hình dưới</li> </ul> <p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct8.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Như vậy với cách Group các sheet lại với nhau, các bạn chỉ thực hiện được khi tất cả các sheet có số lượng dòng dữ liệu (bản ghi) bằng nhau.</p><p></p><p>Để thực hiện được một cách nhanh chóng và áp dụng cho tất cả các trường hợp sheet có số lượng dòng dữ liệu dài ngắn khác nhau, các bạn làm như sau</p><p></p><p>Mở cửa sổ VBA và nhập vào đoạn mã sau. (Lưu ý: Tốt nhất trước khi chạy đoạn mã này, các bạn tắt hết các file Excel khác, chỉ để lại file Excel này thôi nhé)</p><p><em><span style="color: #b300b3"></span></em></p><p><em><span style="color: #b300b3">Sub FILL_PASTE_DELETE()</span></em></p><p><em><span style="color: #b300b3"> Dim sh As Worksheet</span></em></p><p><em><span style="color: #b300b3"> For Each sh In ActiveWorkbook.Worksheets</span></em></p><p><em><span style="color: #b300b3"> sh.Range("H1:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)"</span></em></p><p><em><span style="color: #b300b3"> Next sh</span></em></p><p><em><span style="color: #b300b3">End Sub</span></em></p><p><em><span style="color: #b300b3"></span></em></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct9-3.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Và đây là kết quả</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct10.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct11.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct12.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct13.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Vậy là dù số dòng dữ liệu trên các sheet nhiều ít khác nhau thì công thức vẫn được điền đầy đủ cho tất cả các dòng dữ liệu trên tất cả các sheet.</p><p></p><p>Giờ mình sẽ phân tích đoạn mã trên để các bạn nắm được nhé</p><p></p><p><em><span style="color: #b300b3">Sub FILL_PASTE_DELETE()</span></em></p><p><em><span style="color: #b300b3"> Dim sh As Worksheet</span></em></p><p><em><span style="color: #b300b3"> For Each sh In ActiveWorkbook.Worksheets</span></em></p><p><em><span style="color: #b300b3"> sh.Range("H1:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)"</span></em></p><p><em><span style="color: #b300b3"> Next sh</span></em></p><p><em><span style="color: #b300b3">End Sub</span></em></p><ul> <li data-xf-list-type="ul">Sub FILL_PASTE_DELETE() và End Sub: là bắt đầu và kết thúc của một đoạn chương trình (thủ tục VBA)</li> <li data-xf-list-type="ul">Dim sh As Worksheet: Mình khai báo một biến sh để duyệt chạy tên tất cả các Sheet trên file Excel</li> <li data-xf-list-type="ul">For Each sh In ActiveWorkbook.Worksheets: Đây là câu lệnh thực hiện vòng lặp, thực hiện việc duyệt lần lượt qua tất cả các sheet có trên file Excel</li> <li data-xf-list-type="ul">sh.Range(“H6:H” & sh.Cells(sh.Rows.Count, “A”).End(xlUp).Row): Mình cần đặt công thức ở cột H, công thức bắt đầu đặt ở ô H6 và phải xác định được vùng dữ liệu từ ô H6 đến ô cuối cùng chứa dữ liệu của cột H để đặt công thức. Đoạn mã này sẽ giúp thực hiện việc này. Ví dụ, sheet LopA có 5 dòng dữ liệu thì sẽ cho vùng dữ liệu là H6:H10, sheet LopB có 4 dòng dữ liệu sẽ cho vùng H6:H9, tương tự như vậy, sheet LopC cho vùng H6:H15, sheet LopD cho vùng H6:H10</li> <li data-xf-list-type="ul">sh.Range(“H1:H” & sh.Cells(sh.Rows.Count, “A”).End(xlUp).Row).Formula =: Đây là đoạn mã thực hiện đặt công thức cho các vùng đã xác định được ở ý trên.</li> <li data-xf-list-type="ul">“=AVERAGE(E6:G6)”: Đây chính là công thức cần đặt tại ô H6, công thức luôn luôn được đặt trong cặp nháy kép và bắt đầu bằng dấu “=”. Chỉ cần nhập công thức với E6:G6 (tương đương với dòng đầu tiên của vùng đã xác định được) VBA sẽ tự động điền công thức vào các ô thuộc dòng tiếp theo của vùng đã xác định được ở trên. Việc nhập công thức trong VBA giống hệt việc nhập công thức trong một ô Excel với lưu ý bên dưới</li> </ul><p>Lưu ý:</p><ul> <li data-xf-list-type="ul">Với những công thức có chứa ký tự dạng Text trong VBA, chuỗi Text các bạn phải đặt trong 2 cặp nháy kép (“”) nhé. Nhắc lại công thức luôn luôn được đặt trong cặp nháy kép và bắt đầu bằng dấu “=” các bạn nhé</li> <li data-xf-list-type="ul">Khi hiểu các thứ ở trên, khi làm trên 1 file khác, các bạn sẽ thay đổi dòng, cột đầu tiên cần nhập công thức sao cho đúng với nhu cầu thực tế của các bạn nhé</li> </ul><p>Vẫn ví dụ trên, nếu muốn tất cả các sheet tại ô K1 xuất hiện dòng thông báo số học viên tương ứng của lớp đó, chẳng hạn sheet LopA tại K1 là “So HV: 5”, mình thực hiện đoạn code sau</p><p></p><p><em><span style="color: #b300b3">Sub FILL_PASTE_DELETE()</span></em></p><p><em><span style="color: #b300b3"> Dim sh As Worksheet</span></em></p><p><em><span style="color: #b300b3"> For Each sh In ActiveWorkbook.Worksheets</span></em></p><p><em><span style="color: #b300b3"> sh.Range("H6:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)"</span></em></p><p><em><span style="color: #b300b3"> sh.Range("K1").Formula = "=""So HV: ""&COUNTA(A:A)-5"</span></em></p><p><em><span style="color: #b300b3"> Next sh</span></em></p><p><em><span style="color: #b300b3">End Sub</span></em></p><p></p><p>Kết quả như hình dưới</p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct14.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct15.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct16.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p style="text-align: center"><img src="https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct17.png" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Thật đơn giản phải không nào. Chúc các bạn thành công nhé!</p></blockquote><p></p>
[QUOTE="uocmo_kchodoi, post: 177420, member: 165510"] Xin chào các bạn, chắc hẳn những bạn thường xuyên sử dụng Excel đã ít nhiều gặp trường hợp có 1 file Excel với rất nhiều Sheet khác nhau nhưng cấu trúc phần tiêu đề giống hệt nhau (cấu trúc giống nhau), chỉ khác nhau ở số lượng dòng dữ liệu trên mỗi sheet. Nếu phải làm từng Sheet một sẽ rất mất thời gian phải không? Mình sẽ hướng dẫn các bạn cách đặt công thức và chạy công thức cho tất cả các sheet này (đương nhiên công thức cho các cột ở các sheet khác nhau cũng cùng một cấu trúc). Vì công thức chạy bằng VBA nên nếu bạn chưa biết cách sử dụng VBA bạn có thể xem tại link này nhé [URL]https://vnkienthuc.com/vba-la-gi-huong-dan-chay-code-vba-va-cach-them-cac-add-ins-trong-excel.t77197/[/URL] Mình lấy ví dụ cho dễ hiểu nhé. Giả sử mình có file Excel là bảng điểm của 3 lớp với mỗi sheet là 1 lớp (đây là ví dụ mang tính chất tham khảo chứ bình thường không ai bố trí dữ liệu như thế này các bạn ạ). Trong đó cấu trúc của các sheet là giống hệt nhau, chỉ khác nhau ở dữ liệu các dòng và số lượng các dòng (các lớp khác nhau sẽ có số lượng học viên khác nhau). Sheet LopA có 5 học viên như hình dưới [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct1.png[/IMG][/CENTER] Sheet LopB có 4 học viên như hình dưới [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct2.png[/IMG][/CENTER] Sheet LopC có 10 học viên như hình dưới [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct3.png[/IMG][/CENTER] Và Sheet LopD có 5 học viên như hình dưới [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct4.png[/IMG][/CENTER] Với chỉ 5 sheet này, để tính điểm trung bình, với mỗi sheet tại ô H6 các bạn chỉ cần nhập công thức ở dòng dữ liệu đầu tiên, sau đó kéo xuống hết dữ liệu sẽ ra kết quả. Tuy nhiên đây chỉ là một ví dụ 5 sheet, giả sử file excel không phải có 5 sheet mà có tới hàng trăm sheet thì các bạn làm như thế nào? Với bạn nào biết cách nhập nhanh dữ liệu đồng thời cho nhiều Sheet, các bạn sẽ thực hiện gộp tất cả các sheet thành 1 nhóm (group – click chọn tên sheet đầu tiên, giữ phím Shift rồi click chọn tên sheet cuối cùng) rồi nhập công thức vào ô H6, lúc này tất cả ô H6 của tất cả các sheet sẽ được nhập công thức tính điểm trung bình. [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct5.png[/IMG][/CENTER] Nhưng lúc này, làm thế nào để điền đầy công thức của các dòng tiếp theo trong các sheet? Nếu vẫn đang Group các sheet mà kéo công thức tại Sheet LopA thì điều gì sẽ xảy ra? Lúc này xảy ra 3 trường hợp [LIST] [*]Trường hợp thứ nhất, các sheet có số lượng dữ liệu (bản ghi) ít hơn so với Sheet LopA (trong ví dụ này sẽ là Sheet LopB), sẽ xuất hiện các dòng chứa công thức thừa (dòng xuất hiện lỗi #DIV/0!) như hình dưới [/LIST] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct6.png[/IMG][/CENTER] [LIST] [*]Trường hợp thứ 2 là Sheet có số dòng dữ liệu (bản ghi) nhiều hơn so với số dòng dữ liệu của Sheet LopA (Trong ví dụ này là Sheet LopC), các dòng có chỉ số lớn hơn chỉ số dòng lớn nhất của Sheet LopA sẽ không được điền công thức như hình dưới [/LIST] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct7.png[/IMG][/CENTER] [LIST] [*]Và trường hợp cuối cùng, các sheet có số dòng dữ liệu (bản ghi) bằng số dòng dữ liệu của Sheet LopA sẽ được điền công thức đầy đủ như hình dưới [/LIST] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct8.png[/IMG][/CENTER] Như vậy với cách Group các sheet lại với nhau, các bạn chỉ thực hiện được khi tất cả các sheet có số lượng dòng dữ liệu (bản ghi) bằng nhau. Để thực hiện được một cách nhanh chóng và áp dụng cho tất cả các trường hợp sheet có số lượng dòng dữ liệu dài ngắn khác nhau, các bạn làm như sau Mở cửa sổ VBA và nhập vào đoạn mã sau. (Lưu ý: Tốt nhất trước khi chạy đoạn mã này, các bạn tắt hết các file Excel khác, chỉ để lại file Excel này thôi nhé) [I][COLOR=#b300b3] Sub FILL_PASTE_DELETE() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets sh.Range("H1:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)" Next sh End Sub [/COLOR][/I] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct9-3.png[/IMG][/CENTER] Và đây là kết quả [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct10.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct11.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct12.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct13.png[/IMG][/CENTER] Vậy là dù số dòng dữ liệu trên các sheet nhiều ít khác nhau thì công thức vẫn được điền đầy đủ cho tất cả các dòng dữ liệu trên tất cả các sheet. Giờ mình sẽ phân tích đoạn mã trên để các bạn nắm được nhé [I][COLOR=#b300b3]Sub FILL_PASTE_DELETE() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets sh.Range("H1:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)" Next sh End Sub[/COLOR][/I] [LIST] [*]Sub FILL_PASTE_DELETE() và End Sub: là bắt đầu và kết thúc của một đoạn chương trình (thủ tục VBA) [*]Dim sh As Worksheet: Mình khai báo một biến sh để duyệt chạy tên tất cả các Sheet trên file Excel [*]For Each sh In ActiveWorkbook.Worksheets: Đây là câu lệnh thực hiện vòng lặp, thực hiện việc duyệt lần lượt qua tất cả các sheet có trên file Excel [*]sh.Range(“H6:H” & sh.Cells(sh.Rows.Count, “A”).End(xlUp).Row): Mình cần đặt công thức ở cột H, công thức bắt đầu đặt ở ô H6 và phải xác định được vùng dữ liệu từ ô H6 đến ô cuối cùng chứa dữ liệu của cột H để đặt công thức. Đoạn mã này sẽ giúp thực hiện việc này. Ví dụ, sheet LopA có 5 dòng dữ liệu thì sẽ cho vùng dữ liệu là H6:H10, sheet LopB có 4 dòng dữ liệu sẽ cho vùng H6:H9, tương tự như vậy, sheet LopC cho vùng H6:H15, sheet LopD cho vùng H6:H10 [*]sh.Range(“H1:H” & sh.Cells(sh.Rows.Count, “A”).End(xlUp).Row).Formula =: Đây là đoạn mã thực hiện đặt công thức cho các vùng đã xác định được ở ý trên. [*]“=AVERAGE(E6:G6)”: Đây chính là công thức cần đặt tại ô H6, công thức luôn luôn được đặt trong cặp nháy kép và bắt đầu bằng dấu “=”. Chỉ cần nhập công thức với E6:G6 (tương đương với dòng đầu tiên của vùng đã xác định được) VBA sẽ tự động điền công thức vào các ô thuộc dòng tiếp theo của vùng đã xác định được ở trên. Việc nhập công thức trong VBA giống hệt việc nhập công thức trong một ô Excel với lưu ý bên dưới [/LIST] Lưu ý: [LIST] [*]Với những công thức có chứa ký tự dạng Text trong VBA, chuỗi Text các bạn phải đặt trong 2 cặp nháy kép (“”) nhé. Nhắc lại công thức luôn luôn được đặt trong cặp nháy kép và bắt đầu bằng dấu “=” các bạn nhé [*]Khi hiểu các thứ ở trên, khi làm trên 1 file khác, các bạn sẽ thay đổi dòng, cột đầu tiên cần nhập công thức sao cho đúng với nhu cầu thực tế của các bạn nhé [/LIST] Vẫn ví dụ trên, nếu muốn tất cả các sheet tại ô K1 xuất hiện dòng thông báo số học viên tương ứng của lớp đó, chẳng hạn sheet LopA tại K1 là “So HV: 5”, mình thực hiện đoạn code sau [I][COLOR=#b300b3]Sub FILL_PASTE_DELETE() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets sh.Range("H6:H" & sh.Cells(sh.Rows.Count, "A").End(xlUp).Row).Formula = "=AVERAGE(E6:G6)" sh.Range("K1").Formula = "=""So HV: ""&COUNTA(A:A)-5" Next sh End Sub[/COLOR][/I] Kết quả như hình dưới [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct14.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct15.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct16.png[/IMG][/CENTER] [CENTER][IMG]https://www.thuthuattinhoc.org/wp-content/uploads/2017/05/vba-ct17.png[/IMG][/CENTER] Thật đơn giản phải không nào. Chúc các bạn thành công nhé! [/QUOTE]
Tên
Mã xác nhận
Gửi trả lời
CÔNG NGHỆ
Công Nghệ Thông Tin
Thủ Thuật Tin học
Hướng dẫn: Làm thế nào để tạo 1 công thức cho nhiều Sheet?
Top