Tạo vòng lặp chọn nhiều sheet tên theo corename

Liên hệ QC

huongtinh1929

Premier Сasual Dating Real-life Girls
Tham gia
6/10/11
Bài viết
61
Được thích
4
Giới tính
Nam
Nghề nghiệp
Health
Các bác chỉ giúp em có cách nào tạo một vòng lặp duyệt qua các sheet có tên chỉ định thì chọn (tên lấy theo tên trong VBA "Corename") và chọn được nhiều sheet cùng lúc. Em mầy mò cả tuần rồi mà không được. Em muốn lấy theo tên corename vì nhiều khi vô ý đổi tên sheet hiện hành lên hay bị sót hoặc lỗi ạ. Em cảm ơn các bác!
 

File đính kèm

  • chan qua.xlsm
    36.8 KB · Đọc: 7
Các bác chỉ giúp em có cách nào tạo một vòng lặp duyệt qua các sheet có tên chỉ định thì chọn (tên lấy theo tên trong VBA "Corename") và chọn được nhiều sheet cùng lúc. Em mầy mò cả tuần rồi mà không được. Em muốn lấy theo tên corename vì nhiều khi vô ý đổi tên sheet hiện hành lên hay bị sót hoặc lỗi ạ. Em cảm ơn các bác!
Xin lỗi mình nhầm.
 
Lần chỉnh sửa cuối:
Upvote 0
Các bác chỉ giúp em có cách nào tạo một vòng lặp duyệt qua các sheet có tên chỉ định thì chọn (tên lấy theo tên trong VBA "Corename") và chọn được nhiều sheet cùng lúc. Em mầy mò cả tuần rồi mà không được. Em muốn lấy theo tên corename vì nhiều khi vô ý đổi tên sheet hiện hành lên hay bị sót hoặc lỗi ạ. Em cảm ơn các bác!
 

File đính kèm

  • no chan_.xlsm
    37.3 KB · Đọc: 45
Upvote 0
Cảm ơn ban nhiều nhiều đúng như ý mình rồi.
mà bạn cho mình hỏi thêm một chút:
valCal = Application.Calculation
Application.Calculation = xlCalculationManual

SheetCodeName = wb.Sheets(wb.VBProject.VBComponents(sCodeName).Properties("Index"))
là gì vậy bạn.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nghĩ nên dùng vòng lặp để tránh các rắc rối khi truy cập VBProject. Trong trường hợp này có lẽ không cần so sánh về tốc độ vì tôi nghĩ gần như không có sự khác biệt.
 
Upvote 0
Các bác chỉ giúp em có cách nào tạo một vòng lặp duyệt qua các sheet có tên chỉ định thì chọn (tên lấy theo tên trong VBA "Corename") và chọn được nhiều sheet cùng lúc. Em mầy mò cả tuần rồi mà không được. Em muốn lấy theo tên corename vì nhiều khi vô ý đổi tên sheet hiện hành lên hay bị sót hoặc lỗi ạ. Em cảm ơn các bác!
Thắc mắc: bạn làm việc gì mà phải chọn nhiều sheet cùng lúc vậy?
 
Upvote 0
Thắc mắc: bạn làm việc gì mà phải chọn nhiều sheet cùng lúc vậy?
Báo cáo anh
ndu96081631
là có file em phải dùng đến 120 sheet. Và khối lượng dữ liệu của các sheet cũng rất lớn. dữ liệu đến cột Vlz và số dòng gần 1.000 (Mình trả lời sai vị trí cứ tưởng anh @ndu96081631 hỏi ở trong bài của mình.
 
Lần chỉnh sửa cuối:
Upvote 0
Báo cáo anh
ndu96081631
là có file em phải dùng đến 120 sheet. Và khối lượng dữ liệu của các sheet cũng rất lớn. dữ liệu đến cột Vlz và số dòng gần 1.000
nhiều khi cách thiết kế dữ liệu của bạn còn chưa ổn. bác xem lại thử cách thiết kế file ntn, có cần phải nhiều cột đến vậy.
 
Upvote 0
Thắc mắc: bạn làm việc gì mà phải chọn nhiều sheet cùng lúc vậy?
dạ em làm về QHSDĐ nên khi giao nộp sản phẩm file excel thì phải bỏ hết công thức và xoa các sheet trung gian đi mà sheet trung gian thì quá nhiều 50 sheet nên em muốn đầu tiên là bỏ hết công thức ở các sheet cần giao nộp. Xong thì chọn tất cacr các sheet trung gian và xoa đi ạ. Em muốn lấy theo tên corename để nếu em có đổi tên hiện hành sheet trung gian thì khi chạy sub xoa không bị lỗi ạ. Thân ái chúc sức khỏe bác!
Mà bác có thể giúp em giải thích doc hơn đoạn core này với:
Function SheetCodeName(ByVal sCodeName As String, Optional wb As Workbook) As Worksheet
If wb Is Nothing Then Set wb = ThisWorkbook
Set SheetCodeName = wb.Sheets(wb.VBProject.VBComponents(sCodeName).Properties("Index"))
End Function
Em rất yêu thích VBA nhưng ở miền núi nên chưa có điều kiện đi học, nhiều lúc thắc mắc mà chẳng biết hỏi ai. May măn có diễn đàn giaiphapexcel nên cũng thỏa ước mong học hỏi được phần nào.
 
Lần chỉnh sửa cuối:
Upvote 0
dạ em làm về QHSD Đ nên khi giao nộp sản phẩm file excel thì phải bỏ hết công thức và xoa các sheet trung gian đi mà sheet trung gian thì quá nhiều 50 sheet nên em muốn đầu tiên là bỏ hết công thức ở các sheet cần giao nộp. Xong thì chọn tất cacr các sheet trung gian và xoa đi ạ. Em muốn lấy theo tên corename để nếu em có đổi tên hiện hành sheet trung gian thì khi chạy sub xoa không bị lỗi ạ. Thân ái chúc sức khỏe bác!
Thay vì làm vậy thì tôi sẽ làm ngược lại:
1> Các sheet cần báo cáo chắc là cố định? Vậy chỉ cần "Move or copy to" những sheets này ra file mới, paste values toàn bộ công thức, vậy là xong
2> Có thể tạo 1 AddIn để làm công việc trên 1 cách tự động
3> AddIn SaveSheet2File đã có trên GPE
-------------------------------
Nói chung: Bạn đừng nghĩ "hướng đi" của mình là đúng! Bởi bạn chỉ cần nêu bài toán, có khi người ta sẽ hướng dẫn bạn cách khác nhanh gọn hơn
 
Upvote 0
bác ới sao em chạy sub thì lại báo lỗi
Set SheetCodeName = wb.Sheets(wb.VBProject.VBComponents(sCodeName).Properties("Index"))
 
Upvote 0
Upvote 0
Thay vì làm vậy thì tôi sẽ làm ngược lại:
1> Các sheet cần báo cáo chắc là cố định? Vậy chỉ cần "Move or copy to" những sheets này ra file mới, paste values toàn bộ công thức, vậy là xong
2> Có thể tạo 1 AddIn để làm công việc trên 1 cách tự động
3> AddIn SaveSheet2File đã có trên GPE
-------------------------------
Nói chung: Bạn đừng nghĩ "hướng đi" của mình là đúng! Bởi bạn chỉ cần nêu bài toán, có khi người ta sẽ hướng dẫn bạn cách khác nhanh gọn hơn
Bác chỉ dậy rất đúng . VD em muốn chọn sheet có corename là sheet1,sheet2, sheet4 rồi lưu ra file mới ạ. Mong bác chỉ bảo cho em ạ!
vì tên hiện hành sheet của em luôn thay đổi tùy theo từng huyện nên em muốn lấy theo corenam để khỏi lỗi ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom