Xóa nhiều vùng khác nhau trong nhiều sheet

Liên hệ QC

trantuonganh2008

Thành viên thường trực
Tham gia
8/11/08
Bài viết
305
Được thích
53
Hi all, Mình muốn xóa nhiều vùng khác nhau trong nhiều sheet nằm trong một workbook thì viết code như thế nào. Chẳng hạn ở sheet1 xóa vùng (A1:F50)..., sheet 2 xóa vùng (A5:F8)... thì làm như thế nào. Nhờ các bạn chỉ giáo. Thanks!
 
Lần chỉnh sửa cuối:
Bạn dùng chức năng Record Marcro (Tools - Marcro - Record New Marcro) tạo 1 Marcro lưu lại các thao tác bạn xóa trên các sheet là được.
 
Nhưng nhiều khi có chèn thêm dòng hay thêm cột thì sao hả bạn?
 
Lần chỉnh sửa cuối:
Chỉ là thêm dữ liệu thôi. Vây khi chèn hàng hoặc cột thì mình phải chỉnh lại trong code hay sao?
 
Lần chỉnh sửa cuối:
Thêm hàng, cột tại vùng có cố định không bạn? Nếu cố định thì bạn Record được mà. Nếu không thì chèn bằng tay. :)
 
Hi all,
Mình muốn xóa nhiều vùng khác nhau trong nhiều sheet nằm trong một workbook thì viết code như thế nào. Chẳng hạn ở sheet1 xóa vùng (A1:F50)..., sheet 2 xóa vùng (A5:F8)... thì làm như thế nào. Nhờ các bạn chỉ giáo.

Thanks!
Ít ra bạn phải nói cho mọi người biết những vùng ấy có đặc điểm gì... chứ vô chừng thì THÁNH cũng thua
(gọi ý: Đặt name động cho vùng cũng là 1 cách)
 
Những vùng này là vùng dữ liệu nhập bằng tay, mình muốn xóa những dữ liệu nhập bằng tay để tạo mới đó mà. Cách đặt name đông như thế nào mình không biết, nhờ bạn chỉ giúp. Cám ơn nhiều!
 
Lần chỉnh sửa cuối:
Những vùng này là vùng dữ liệu nhập bằng tay, mình muốn xóa những dữ liệu nhập bằng tay để tạo mới đó mà. Cách đặt name đông như thế nào mình không biết, nhờ bạn chỉ giúp.

Cám ơn nhiều!
Bạn không biết thì mọi người sẽ giúp, nhưng phải có cơ sở dử liệu chứ bạn
(ra Siêu thị mua hàng cũng phải mang tiền... nói không không ai bán)
 
Mình muốn xóa dữ liệu (sheet LTHANH): A6:W12, A14:G45, K14:K45, N14:W45. Cám ơn nhiều nhé!
 

File đính kèm

  • Copy of THANG 10-2008.zip
    72.2 KB · Đọc: 112
Lần chỉnh sửa cuối:
Cách viết này chỉ áp dụng cho từng sheet thôi, nhờ bạn giúp mình viết code để khi chạy macro thì tất cả các sheet khác cũng xóa như vậy. Hay là dựa theo công thức của bạn viết cho từng sheet một, như vậy thì khi ở một sheet nào đó mình chạy macro các sheet khác có ăn theo không?
 
Lần chỉnh sửa cuối:
Cách viết này chỉ áp dụng cho từng sheet thôi, nhờ bạn giúp mình viết code để khi chạy macro thì tất cả các sheet khác cũng xóa như vậy. Hay là dựa theo công thức của bạn viết cho từng sheet một, như vậy thì khi ở một sheet nào đó mình chạy macro các sheet khác có ăn theo không?
Thì thêm 1 vòng lập nữa vào
PHP:
Sub Test()
 Dim Sh As Worksheet
 For Each Sh In ThisWorkbook.Worksheets
   With Sh
    Union(.[A6:W12], .[A14:G45], .[K14:K45], .[N14:W45]).ClearContents
   End With
  Next
End Sub
Không chừa sheet nào đâu nha
hoặc đơn giản hơn:
PHP:
Sub Test()
  Sheets.Select
  Union([A6:W12], [A14:G45], [K14:K45], [N14:W45]).Select
  Selection.ClearContents
End Sub
 
Lần chỉnh sửa cuối:
Nhưng mình đã nói là các range khác nhau mà, đâu phải sheet nào cũng có range như vậy đâu.
 
Lần chỉnh sửa cuối:
Nhưng mình đã nói là các range khác nhau mà, đâu phải sheet nào cũng có range như vậy đâu.
Khác nhau là khác thế nào?
Bạn phải cho mọi người biết đặc điểm nhận dạng chứ
Bắt cướp mà chẳng biết hình dáng, tên, tuổi, địa chỉ... mọi thứ thì bắt... gì?
 
Bạn xem file tháng 10 mình đã gửi nhé. Ở sheet đầu thì mình nói rồi. Sang sheet KSON, mình muốn xóa các vùng sau: A6:J12, L6:Q12, A14:E45, I14:I45, L14:Q45. Ý mình là bạn chỉ giúp cách viết code tổng quát dựa theo yêu cầu của mình thôi để mình còn chỉnh sửa theo như ý muốn nữa. Cám ơn nhiều nha!!!
 
Lần chỉnh sửa cuối:
Bạn xem file tháng 10 mình đã gửi nhé. Ở sheet đầu thì mình nói rồi. Sang sheet KSON, mình muốn xóa các vùng sau: A6:J12, L6:Q12, A14:E45, I14:I45, L14:Q45. Ý mình là bạn chỉ giúp cách viết code tổng quát dựa theo yêu cầu của mình thôi để mình còn chỉnh sửa theo như ý muốn nữa. Cám ơn nhiều nha!!!
Đoạn code này:
PHP:
Sub Test()
  With Sheets("L THANH")
    Union(.[A6:W12], .[A14:G45], .[K14:K45], .[N14:W45]).ClearContents
  End With
End Sub
là để xóa các vùng đã liệt kê trong sheet L THANH
vậy bạn dựa vào đó, làm thêm mấy sub nữa, mổi sub xóa 1 sheet là xong chứ gì
Ví dụ:
PHP:
Sub Test()
  With Sheets("KSON")
    Union(.[A6:J12], .[L6:Q12], .[A14:E45], .[I14:I45], .[L14:Q45]).ClearContents
  End With
End Sub
là xóa các vùng liệt kê trong sheet KSON
 
Macro tổng quát đây, xin mời bạn

Nhưng mình đã nói là các range khác nhau mà, đâu phải sheet nào cũng có range như vậy đâu.

Nhưng file bạn đưa lên có virus thì phải!

PHP:
Option Explicit
Sub DeleteRangesInSheets()
 Dim Sh As Worksheet, dRng As Range
 For Each Sh In Worksheets
   Set dRng = InputBox("HAY CHON VUNG CAN XOA", Sh.Name, Type:=8)
   If Not dRng Is Nothing Then dRng.Delete
 Next Sh
End Sub
 
Như vậy phải chọn vùng cho từng sheet, vậy mình làm bằng tay còn nhanh hơn. Nhưng mà code của bạn khi chạy sao báo lỗi vậy? Bạn làm cụ thể ở sheet đầu thử xem! Chắc có lẽ làm theo cách của ndu thôi hoặc cách ghi macro lại cho từng thao tác 1 lần.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom