Treo khi mở nhiều file cùng lúc - Xin giúp đỡ (1 người xem)

Liên hệ QC

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

loinguyen212

Thành viên thường trực
Tham gia
21/2/14
Bài viết
254
Được thích
35
Chào tất cả mọi người,

Em có 11 file excel đặt cùng folder (có tên: Control.xlsm, Book1.xlsm, Book2.xlsm,..,Book10.xlsm). Mở file Control.xlsm, bấm nút thì các file excel được gọi mở lên và đóng xuống luôn, em thử gọi một file thì ok, nhưng nhiều file (có thể là 10 hoặc hơn nếu có) thì chưa có giải pháp tốt (chả nhẽ viết 10 sub, rồi viết 1 sub gọi tất cả 10 sub kia, mà như thế cũng có thể treo luôn Excel vì các file được mở chạy sub theo sự kiện workbook open). Em cũng đã nghĩ đến việc đưa vào vòng lặp, mà chưa làm được. Nhờ mọi người đóng góp ý kiến cho em một giải pháp hay. Chân thành cảm ơn.

Nhờ mọi người giúp đỡ. Thân!

Em sử dụng code:
PHP:
Sub Control() 
 Dim Wb As Workbook
 Application.ScreenUpdating = False
    Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book2.xlsm")
    Wb.Close SaveChanges:=True
 Application.ScreenUpdating = True
End Sub
 
Chào tất cả mọi người,

Em có 11 file excel đặt cùng folder (có tên: Control.xlsm, Book1.xlsm, Book2.xlsm,..,Book10.xlsm). Mở file Control.xlsm, bấm nút thì các file excel được gọi mở lên và đóng xuống luôn, em thử gọi một file thì ok, nhưng nhiều file (có thể là 10 hoặc hơn nếu có) thì chưa có giải pháp tốt (chả nhẽ viết 10 sub, rồi viết 1 sub gọi tất cả 10 sub kia, mà như thế cũng có thể treo luôn Excel vì các file được mở chạy sub theo sự kiện workbook open). Em cũng đã nghĩ đến việc đưa vào vòng lặp, mà chưa làm được. Nhờ mọi người đóng góp ý kiến cho em một giải pháp hay. Chân thành cảm ơn.

Nhờ mọi người giúp đỡ. Thân!

Em sử dụng code:
PHP:
Sub Control() 
 Dim Wb As Workbook
 Application.ScreenUpdating = False
    Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book2.xlsm")
    Wb.Close SaveChanges:=True
 Application.ScreenUpdating = True
End Sub

Hỏi lại: Mục đích cuối cùng trong việc mở cả "đống" file này là để làm gì?
Tôi hỏi thế vì nghĩ chắc chắn bạn phải mở file con để lấy dữ liệu hoặc làm cái gì đó (chứ không phải mở để... nhìn).
Vậy nếu ta biết được mục đích chính, ta giải quyết tận gốc luôn
 
Upvote 0
Như em đã nói ở trên và Em xin trả lời Thầy là: Mở cả đống file ấy để chạy các code trong file đấy (chạy theo sự kiện workbook open). Và nếu tường tận hơn nữa là code trong các file em dùng để truy vấn dữ liệu từ các file khác nữa, lợi dụng cả việc khi mở file thì Calculation Automatic để có được kết quả tính đúng (vì nếu không bật file thì nó sẽ không chịu tính ==> dẫn đến kết quả sai. Thầy dạy cho em vài chiêu đi ạ. Em cảm ơn.
 
Upvote 0
Như em đã nói ở trên và Em xin trả lời Thầy là: Mở cả đống file ấy để chạy các code trong file đấy (chạy theo sự kiện workbook open). Và nếu tường tận hơn nữa là code trong các file em dùng để truy vấn dữ liệu từ các file khác nữa, lợi dụng cả việc khi mở file thì Calculation Automatic để có được kết quả tính đúng (vì nếu không bật file thì nó sẽ không chịu tính ==> dẫn đến kết quả sai. Thầy dạy cho em vài chiêu đi ạ. Em cảm ơn.

Vẫn không hiểu cụ thể là việc gì
Tuy nhiên bạn nên tham khảo ADO, nó lấy dữ liệu từ file đang đóng mà không cần phải mở file
 
Upvote 0
Vẫn không hiểu cụ thể là việc gì
Tuy nhiên bạn nên tham khảo ADO, nó lấy dữ liệu từ file đang đóng mà không cần phải mở file
Hình như là bạn ấy muốn làm điều ngược lại đó thầy . Tức là tự cập nhật dữ liệu của file đích đang đóng khi dữ liệu của file nguồn (đang mở) thay đổi .
 
Lần chỉnh sửa cuối:
Upvote 0
Em xin giải thích tiếp để Thầy và mọi người hiểu:

1. Với các file như đầu đề bài em nêu, trong book1 chứa dữ liệu. Đứng trên file Control chạy sub mở file book2, book3, book7... (tùy chọn một số file xác định)
2. Mục đích của việc mở file: ví dụ mở file book2 (các file khác tương tự)
- sub trong book2 được run (vì sub chạy theo sự kiện workbook open) => lấy được vùng dữ liệu ABC từ book1 (em làm được rồi)
- các công thức trong book2 (có liên quan đến vùng dữ liệu ABC vừa lấy) được run hết (nếu copy được mà không mở file đích (book2) lên thì chưa chắc các công thức được lập sẵn trong file đã run theo dữ liệu mới được copy sang).
Mở xong thì đóng luôn.
Dung lượng file thực nặng, làm xong file giả định em sẽ gửi lên.
 
Upvote 0
File đính kèm........................................
 

File đính kèm

Upvote 0
Em xin giải thích tiếp để Thầy và mọi người hiểu:

1. Với các file như đầu đề bài em nêu, trong book1 chứa dữ liệu. Đứng trên file Control chạy sub mở file book2, book3, book7... (tùy chọn một số file xác định)
2. Mục đích của việc mở file: ví dụ mở file book2 (các file khác tương tự)
- sub trong book2 được run (vì sub chạy theo sự kiện workbook open) => lấy được vùng dữ liệu ABC từ book1 (em làm được rồi)
- các công thức trong book2 (có liên quan đến vùng dữ liệu ABC vừa lấy) được run hết (nếu copy được mà không mở file đích (book2) lên thì chưa chắc các công thức được lập sẵn trong file đã run theo dữ liệu mới được copy sang).
Mở xong thì đóng luôn.
Dung lượng file thực nặng, làm xong file giả định em sẽ gửi lên.
Vậy thì sử dụng một File mở thôi tử File đó chạy Macros File Kia xong rồi đóng lại luôn cũng được mà Ví dụ sau
PHP:
With Workbooks("ABC.xlsb")
    .Workbooks("ABC.xlsb").RunAutoMacros (xlAutoOpen)
    .Workbooks("ABC.xlsb").Close True
End With
 
Upvote 0
Vậy thì sử dụng một File mở thôi tử File đó chạy Macros File Kia xong rồi đóng lại luôn cũng được mà Ví dụ sau
PHP:
With Workbooks("ABC.xlsb")
    .Workbooks("ABC.xlsb").RunAutoMacros (xlAutoOpen)
    .Workbooks("ABC.xlsb").Close True
End With
Cũng chưa mường tượng ra ý của bác lắm nhưng nếu run code mà không mở file thì các kết quả (lập từ công thức tính) trong file có tự update không?
 
Upvote 0
Cũng chưa mường tượng ra ý của bác lắm nhưng nếu run code mà không mở file thì các kết quả (lập từ công thức tính) trong file có tự update không?
Ý mình là ko phải mở file kia lên mà dùng code mở lên chạy code bên file đó xong đóng lại luôn....code thì ok còn công thức thì mình chưa test
 
Upvote 0
Ý mình là ko phải mở file kia lên mà dùng code mở lên chạy code bên file đó xong đóng lại luôn....code thì ok còn công thức thì mình chưa test
File Control được mở lên (thủ công bằng nhấp đúp chuột vào file) và điều khiển, mục đích của em không cần đóng file đấy. Đứng trên file Control và mở các book2, book3, book7... (#6)
 
Upvote 0
Xin mọi người cho ý kiến giúp đỡ.
 
Lần chỉnh sửa cuối:
Upvote 0
Mọi người cho em một vài ý kiến tham khảo.
Chân thành cảm ơn!
 
Upvote 0
- Xem cái file đính kèm của bạn cũng không hiểu bạn muốn gì !
- bạn đòi mở 11 file lên, chưa biết dung lượng 1 file nặng bao nhiêu, rồi cấu hình máy tính , RAM liệu có đáp ứng việc bạn mở file này lên để tính toán hông ? -> giải pháp của bạn có lẻ có vấn đề
- sao hông để File Control tính toán dữ liệu mà phải thao tác mở từng file con lên rồi tính ???
- Bạn tìm hiểu về ADO như thầy ndu96081631 nêu đi, nó sẽ giúp ích cho bạn rất nhiều trong việc tổng hợp dữ liệu này đó
 
Upvote 0
Chào tất cả mọi người,

Em có 11 file excel đặt cùng folder (có tên: Control.xlsm, Book1.xlsm, Book2.xlsm,..,Book10.xlsm). Mở file Control.xlsm, bấm nút thì các file excel được gọi mở lên và đóng xuống luôn, em thử gọi một file thì ok, nhưng nhiều file (có thể là 10 hoặc hơn nếu có) thì chưa có giải pháp tốt (chả nhẽ viết 10 sub, rồi viết 1 sub gọi tất cả 10 sub kia, mà như thế cũng có thể treo luôn Excel vì các file được mở chạy sub theo sự kiện workbook open). Em cũng đã nghĩ đến việc đưa vào vòng lặp, mà chưa làm được. Nhờ mọi người đóng góp ý kiến cho em một giải pháp hay. Chân thành cảm ơn.

Nhờ mọi người giúp đỡ. Thân!

Em sử dụng code:
PHP:
Sub Control() 
 Dim Wb As Workbook
 Application.ScreenUpdating = False
    Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book2.xlsm")
    Wb.Close SaveChanges:=True
 Application.ScreenUpdating = True
End Sub
Bạn thêm lệnh DoEvents vào sau các lệnh mở file xem được không?
 
Upvote 0
@Goldgg: Mình cũng tự hỏi vấn đề là ở chỗ mình đặt câu hỏi và giải thích chưa rõ ràng dễ hiểu, hay là do đâu... Câu hỏi mình đưa lên sau vài tuần vướng mắc mà tìm tòi chưa giải quyết được.
@Hau151978 và mọi người:
Để dễ có câu trả lời hơn thì em sẽ diễn đạt lại câu hỏi như sau: Nhu cầu đầu tiên là mở 1 book thôi đã. Em dùng sub
PHP:
Sub Control() 
 Dim Wb As Workbook
 Application.ScreenUpdating = False
    Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book2.xlsm")
    Wb.Close SaveChanges:=True
 Application.ScreenUpdating = True
End Sub
Để mở book2 lên. Ok, đã xong. Bây giờ nhu cầu phát sinh thêm, ấn nút và mở book2, book3 thì sẽ làm như thế nào? Trả lời: thủ công là viết thêm một sub nữa, thay cái book2 bằng book3 là ok, rồi chạy 2 sub này liên tục => vẫn giải được bài toán.
Giờ lại phát sinh thêm là mở thêm các book khác nữa cơ... Vậy thì hay là lại thủ công đi viết hết các sub rồi gọi như trên (cũng được nhưng mở nhiều chắc máy tèo luôn, excel quay vòng vòng rồi lại Close Program..)
==> Hướng giải quyết: Đưa việc mở các book vào vòng lặp, mở xong book này xong lại mới mở book tiếp (có thể chạy vòng lặp sẽ lâu, nhưng sẽ không bị tèo). Đến chỗ này thì khả năng em chưa làm được. Nhờ mọi người giúp đỡ.
Chân thành cảm ơn!
 
Upvote 0
@Goldgg: Mình cũng tự hỏi vấn đề là ở chỗ mình đặt câu hỏi và giải thích chưa rõ ràng dễ hiểu, hay là do đâu... Câu hỏi mình đưa lên sau vài tuần vướng mắc mà tìm tòi chưa giải quyết được.
@Hau151978 và mọi người:
Để dễ có câu trả lời hơn thì em sẽ diễn đạt lại câu hỏi như sau: Nhu cầu đầu tiên là mở 1 book thôi đã. Em dùng sub
PHP:
Sub Control() 
 Dim Wb As Workbook
 Application.ScreenUpdating = False
    Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book2.xlsm")
    Wb.Close SaveChanges:=True
 Application.ScreenUpdating = True
End Sub
Để mở book2 lên. Ok, đã xong. Bây giờ nhu cầu phát sinh thêm, ấn nút và mở book2, book3 thì sẽ làm như thế nào? Trả lời: thủ công là viết thêm một sub nữa, thay cái book2 bằng book3 là ok, rồi chạy 2 sub này liên tục => vẫn giải được bài toán.
Giờ lại phát sinh thêm là mở thêm các book khác nữa cơ... Vậy thì hay là lại thủ công đi viết hết các sub rồi gọi như trên (cũng được nhưng mở nhiều chắc máy tèo luôn, excel quay vòng vòng rồi lại Close Program..)
==> Hướng giải quyết: Đưa việc mở các book vào vòng lặp, mở xong book này xong lại mới mở book tiếp (có thể chạy vòng lặp sẽ lâu, nhưng sẽ không bị tèo). Đến chỗ này thì khả năng em chưa làm được. Nhờ mọi người giúp đỡ.
Chân thành cảm ơn!
Vậy bạn thử cách của mình chưa? Dùng vòng lặp và thêm lệnh doevents vào trước lệnh wb.close? Lệnh Doevents để VB thực hiện các thủ tục sự kiện trong workbook vừa mở xong rồi mới chuyển về control(), tránh bị treo máy. Nếu không có lệnh này, có thể workbook mới mở chưa tính xong đã nhảy sang control() làm sai lệch kết quả nhận được, tuy vậy không biết doevents có chờ workbook mới tính toán công thức không, bạn có thể test với book2 có khoảng vài chục ngàn công thức xem nó có tính trước khi chuyển về control() không?
 
Lần chỉnh sửa cuối:
Upvote 0
Sub Control()
Dim Wb As Workbook,i&
Application
.ScreenUpdating = False
For i=2 to 10
Set Wb
= Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book" & i & ".xlsm")
DoEvents
Wb.Close SaveChanges:=True
Next
Application
.ScreenUpdating = True
End Sub
 
Upvote 0
Sub Control()
Dim Wb As Workbook,i&
Application
.ScreenUpdating = False
For i=2 to 10
Set Wb
= Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book" & i & ".xlsm")
DoEvents
Wb.Close SaveChanges:=True
Next
Application
.ScreenUpdating = True
End Sub
Các book nếu có tên rõ ràng, thì có thể đưa vào một tập hợp nào đấy được không anh? ví như tập hợp abc=(tên file 1, tên file 2, tên file n...) rồi cho duyệt hết theo từng tên trong tập hợp.
 
Upvote 0
Các book nếu có tên rõ ràng, thì có thể đưa vào một tập hợp nào đấy được không anh? ví như tập hợp abc=(tên file 1, tên file 2, tên file n...) rồi cho duyệt hết theo từng tên trong tập hợp.
Được, nhưng dùng tập hợp (Collection) có thể chậm hơn mảng (Array)
Dim ArrFile()
ArrFile=Array(name1,name2,...)
 
Upvote 0
Em cũng đang nghĩ đến cái này. Thêm DoEvents thì sẽ giúp ích gì ạ?
 
Upvote 0
Em thử có 3 file nhưng vẫn cứ nháy nháy (mặc dù đã có ScreenUpdating)
Ban đầu em tưởng do có DoEvents nhưng bỏ đi thì cũng bị. Code test:
PHP:
Sub Control()
  Dim ArrFile() As Variant, Wb As Workbook
  Application.ScreenUpdating = False
         ArrFile = Array("book2.xlsm", "book3.xlsm", "book4.xlsm")
         For Each i In ArrFile
                Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & i & "")
                DoEvents
                Wb.Close SaveChanges:=True
         Next i
  Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em thử có 3 file nhưng vẫn cứ nháy nháy (mặc dù đã có ScreenUpdating)
Ban đầu em tưởng do có DoEvents nhưng bỏ đi thì cũng bị. Code test:
PHP:
Sub Control()
  Dim ArrFile() As Variant, Wb As Workbook
  Application.ScreenUpdating = False
         ArrFile = Array("book2.xlsm", "book3.xlsm", "book4.xlsm")
         For Each i In ArrFile
                Set Wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & i & "")
                DoEvents
                Wb.Close SaveChanges:=True
         Next i
  Application.ScreenUpdating = True
End Sub
Ý của bạn là mở hết tất cả các File trong Cùng Folder lên đúng ko.... nếu vậy sử dụng code sau nha ...có bao nhiêu nó mở lên hết luôn đó còn lại làm gì tự xử nha+-+-+-+)(&&@@}}}}}
PHP:
Sub Open_File()
Dim fso As Object, path$,ObjFile As Object
path = ThisWorkbook.path
Set fso = CreateObject("Scripting.FileSystemObject")
With fso.GetFolder(ThisWorkbook.path)
   For Each ObjFile In .Files
      If fso.GetExtensionName(ObjFile) Like "xls*" Then
         If Left(ObjFile.Name, 2) <> "~$" Then
            If ObjFile.Name <> ThisWorkbook.Name Then
               With Workbooks.Open(ObjFile, 0)
                'Code
               End With
            End If
         End If
      End If
   Next
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Ý của bạn là mở hết tất cả các File trong Cùng Folder lên đúng ko.... nếu vậy sử dụng code sau nha ...có bao nhiêu nó mở lên hết luôn đó còn lại làm gì tự xử nha+-+-+-+)(&&@@}}}}}
Mình muốn mở được những file xác định có name rõ ràng (không phải toàn bộ). Cảm ơn đã chia sẻ.
 
Upvote 0
Thích vậy thì có vậy ....Mình giúp mở lên thôi nha .... còn lại mần chi tự xử nha..../-*+//-*+//-*+/
Mình đã thử code của bạn. Đoạn code này của bạn có ưu điểm gì hơn so với đoạn code mình viết ở bài #24? Mình hỏi vì không biết và mong bạn chỉ dạy (không có ý hiềm khích)
 
Upvote 0
Mình đã thử code của bạn. Đoạn code này của bạn có ưu điểm gì hơn so với đoạn code mình viết ở bài #24? Mình hỏi vì không biết và mong bạn chỉ dạy (không có ý hiềm khích)
thì chạy code ko lỗi mà đạt yêu cầu là tốt rồi...mình ko biết giải thích học mò và copy code chế chơi thôi
 
Lần chỉnh sửa cuối:
Upvote 0
thì chạy code ko lỗi mà đạt yêu cầu là tốt rồi...mình ko biết giải thích học mò và copy code chế chơi thôi
Code chạy không lỗi thì đúng, nhưng chưa đạt yêu cầu bạn ak, trên bạn có đưa code (cũng như mình) mới chỉ là mở 3 file, nhưng mục đích theo như đầu topic của mình là nhiều hơn nữa (10 file hoặc hơn tí). Mới có 3 file thôi mà code đó chạy chưa mượt, vậy mình muốn code chạy trơn tru hơn. bạn giúp mình đi, chế hay không không quan trọng, vấn đề giải quyết được là ok, cảm ơn bạn đã nhiệt tình giúp đỡ.
 
Lần chỉnh sửa cuối:
Upvote 0
Code chạy không lỗi thì đúng, nhưng chưa đạt yêu cầu bạn ak, trên bạn có đưa code (cũng như mình) mới chỉ là mở 3 file, nhưng mục đích theo như đầu topic của mình là nhiều hơn nữa (10 file hoặc hơn tí). Mới có 3 file thôi mà code đó chạy chưa mượt, vậy mình muốn code chạy trơn tru hơn. bạn giúp mình đi, chế hay không không quan trọng, vấn đề giải quyết được là ok, cảm ơn bạn đã nhiệt tình giúp đỡ.
Muốn mấy chục File thì sửa khúc sau là ok nha book4.xlsm,....................
PHP:
ArrFile = Array("book2.xlsm", "book3.xlsm", "book4.xlsm")
 
Upvote 0
Code chạy trơn tru hay không còn tùy vào lượng công việc mà code đó làm, bạn không thể chỉnh sửa 1 con rùa cho nó chạy nhanh bằng máy bay phản lực được. Còn lệnh Doevents mình đưa ở bài trên để tránh treo máy và có thể tránh kết quả không chính xác chứ không làm code nhanh hơn.
 
Upvote 0
Xe honda78 mà cứ muốn nó chạy như cái 350 phân khối.....thì chỉ có cách lắp thêm động cơ phản lực ở đít xe honda78 nữa thì chạy tốt+-+-+-+--=0
 
Upvote 0
Khối lượng công việc mà code đó làm thì như mình đưa ở trên, áp dụng cho các file ban đầu, code #24 mình viết nhưng khi áp dụng thì vẫn chưa happy với nó. Các bác thử và cho em xin cách giải quyết.
 
Upvote 0
Code chạy không lỗi thì đúng, nhưng chưa đạt yêu cầu bạn ak, trên bạn có đưa code (cũng như mình) mới chỉ là mở 3 file, nhưng mục đích theo như đầu topic của mình là nhiều hơn nữa (10 file hoặc hơn tí). Mới có 3 file thôi mà code đó chạy chưa mượt, vậy mình muốn code chạy trơn tru hơn. bạn giúp mình đi, chế hay không không quan trọng, vấn đề giải quyết được là ok, cảm ơn bạn đã nhiệt tình giúp đỡ.
Không biết ý bạn mượt, trơn tru có phải là màn hình không nháy nháy khi chạy code không? Nếu muốn không nháy nháy màn hình thì bạn phải xóa hết các dòng Application.ScreenUpdating = True trong các thủ tục sẽ chạy tự động khi các file con (tạm gọi vậy) được mở.

Cái màn hình của bạn giống như cái ti vi bên dưới.
Ông bố tắt ti vi đi ngủ
Thằng cả đi chơi về, tắt ti vi đi học bài (tắt rồi mà còn tắt nữa)
Học bài xong thằng cả bật ti vi xem rồi ngủ quên
Thằng giữa đi chơi về thấy ti vi đang bật nên tắt rồi đi học bài
Học bài xong thằng giữa bật ti vi xem rồi ngủ quên
Thằng út đi chơi về thấy ti vi đang bật nên tắt rồi đi học bài
Học bài xong thằng út bật ti vi xem rồi ngủ quên
Ông bố dậy bật ti vi (đang bật mà bật gì nữa)

Ông bố muốn ti vi tắt trong lúc ổng ngủ nhưng thực ra ti vi cứ tắt bật tắt bật liên tục.
 
Upvote 0
Kểt cả đã ScreenUpdating=False, thanh taskbar dưới đáy màn hình vẫn nháy, cần ẩn luôn thanh này đi.
 
Upvote 0
Cảm ơn anh huuthang_bd đã bắt đúng bệnh.
Cho em hỏi thêm: Code này có cải thiện được tốc độ nữa không? (cũng với các file trên)
 
Upvote 0
Không biết ý bạn mượt, trơn tru có phải là màn hình không nháy nháy khi chạy code không? Nếu muốn không nháy nháy màn hình thì bạn phải xóa hết các dòng Application.ScreenUpdating = True trong các thủ tục sẽ chạy tự động khi các file con (tạm gọi vậy) được mở.
...

Tôi đã từng đôi lần khuyến cáo các bạn dùng lệnh này. Lúc đó có lẽ mọi người nghĩ là tôi khùng:
(a) Nếu hàm chạy độc lập thì không sao, cứ code như thế cho nó gọn gàng nhẹ nhàng.
(b) Nhưng nếu hàm có khả năng chạy trong một nhóm, thì đừng nên code như thế. Cách code là:
- đầu hàm đặt ra 1 biến boolean
- dùng biến này ghi lại các trang thái ban đầu - tức là trạng thái lúc vừa vào hàm.
- cuối hàm trả trạng thái về vị trí ấy.

sub AnToan()
dim ScreenUpdating_Saved as Boolean
ScreenUpdating_Saved = Application.ScreenUpdating
Application.ScreenUpdating = False
... 'code của hàm ở đây
Application.ScreenUpdating = ScreenUpdating_Saved
End Sub
 
Upvote 0

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

Back
Top Bottom