Tự động làm mới tất cả các code để không phải tắt đi bật lại file (1 người xem)

  • Thread starter Thread starter hktanh
  • Ngày gửi Ngày gửi
Liên hệ QC

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

hktanh

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/8/19
Bài viết
112
Được thích
8
Giới tính
Nam
Chào các bạn. Mình đang gặp phải vấn đề với file excel chứa VBA mà mình tải được, đó là file đó chứa macro với tổ hợp phím tắt là Alt + Q , nếu chỉ mở file đó lên rồi chạy Alt + Q thì không có vấn đề gì nhưng nếu mình muốn chỉnh sửa thuộc tính nào đó của cái file VBA kia (chẳng hạn sửa userform) thì sau khi mình tắt VB Editor đi rồi ấn Alt + Q thì tổ hợp phím này không còn tác dụng nữa mà mình bắt buộc phải tắt đi bật lại file excel đó thì tổ hợp phím mới có tác dụng. Vậy nên mình muốn nhờ các bạn viết cho mình một cái macro có thể làm mới lại toàn bộ các code trong file excel để không phải tắt đi bật lại file thì tổ hợp phím mới có tác dụng như mình đã trình bày. Mình cảm ơn
 
Có thể mong muốn của bạn nằm trong các trường hợp dưới đây

-----------------------
PHP:
Sub RefreshVBA()
  On Error Resume Next
  End
  If ThisWorkbook.IsAddin Then
    Application.Run "'" & ThisWorkbook.Name & "'!" & ThisWorkbook.CodeName & ".Workbook_AddinInstall"
  End if
  Application.Run "'" & ThisWorkbook.Name & "'!" & ThisWorkbook.CodeName & ".Workbook_Open"
  'Tìm sub Auto_Open: Alt+F11 - Ctrl+F gõ "Auto_Open" nếu có thì:'
  'Application.Run "'" & ThisWorkbook.Name & "'!<Tên Module chứa sub Auto_Open>.Auto_Open"''
  'Hoặc chạy trực tiếp Sub Auto_Open'
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn share file đó lên diễn đàn đi
File ví dụ đây bạn nhé. Mã VBA quay lại sheet này dùng tổ hợp phím Ctrl + Q để kích hoạt, nhưng có một điều lạ là cứ mỗi lần mình sửa bất cứ cái gì trong VB Editor , kể cả kéo do thu nhỏ cái userform của nó chẳng hạn thì sau khi tắt VBE đi thì tổ hợp phím Ctrl + Q vô tác dụng mà phải tắt đi bật lại file thì tổ hợp phím đó mới có tác dụng. Bạn xem giúp mình với nhé
 

File đính kèm

Upvote 0
Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub


*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.
 
Upvote 0
Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub

thì tôi có hiểu cách của bạn đâu thì chả hỏi
*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.
 
Upvote 0
Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub


*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.
Mình đã thử code của bạn nhưng mình chỉ biết chạy nó luôn thôi ý, chưa biết sửa thế nào, còn chỗ này mình không hiểu bạn ạ. Bạn có viết là Auto (gạch dưới) Open nhưng mình tạm sửa lại là Auto-Open nhé không thì nó lại ra thế này o_O . Lúc mình Run luôn cái code của bạn thì mình thấy tổ hợp phím của cái Switch sheet kia còn bị vô hiệu hóa luôn ý @@ . Mình cũng biết nó lỗi thời rồi nhưng mà mình chưa tìm được cái nào hay hơn để quay trở lại sheet cả

'Tìm sub Auto-open: Alt+F11 - Ctrl+F gõ "Auto-open" nếu có thì:'
'Application.Run "'" & ThisWorkbook.Name & "'!<Tên Module chứa sub Auto-open>.Auto-open"''
'Hoặc chạy trực tiếp Sub Auto-open'
Bài đã được tự động gộp:

Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub


*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.

Mình đã sửa code của bạn lại thành thế này để chạy, không biết có đúng không nhưng mà vẫn không ăn thua bạn ạ, bạn xem giúp mình với nhé

Sub RefreshVBA()
On Error Resume Next
End
If ThisWorkbook.IsAddin Then
Application.Run "'" & ThisWorkbook.Name & "'!" & ThisWorkbook.CodeName & ".Workbook_AddinInstall"
End If
Application.Run "'" & ThisWorkbook.Name & "'!" & ThisWorkbook.CodeName & ".Workbook_Open"
Application.Run "'" & ThisWorkbook.Name & "'!M01.Auto_Open" ''
'T?m sub Auto_Open: Alt+F11 - Ctrl+F g? "Auto_Open" n?u có th?:'
'Application.Run "'" & ThisWorkbook.Name & "'!<Tên Module ch?a sub Auto_Open>.Auto_Open"''
'Ho?c ch?y tr?c ti?p Sub Auto_Open'
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub


*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.
Mình chạy lại Auto-Open thì được rồi bạn nhé. Nếu có vấn đề phát sinh mình sẽ hỏi bạn thêm nhé. Tại là vì lúc trước mình chả biết cái Sub Auto-Open ở đâu cả
Bài đã được tự động gộp:

Tôi đã hướng dẫn ở trên sao bạn không tham khảo vậy
"Đồ ăn giao tận miệng mới chịu"

Chỉ cần chạy Sub Auto_open sau khi sửa đoạn code là được

Hoặc copy đoạn sau vào Code của Workbook (không phải Worksheet):
-------------------------
JavaScript:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  Application.OnKey IIf(AltOrCtrl = CtrlKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
  Set App = New clsExcelApp
  App.Wrap Application
End Sub


*** Switch Sheet kia đã lỗi thời - bạn nên cân nhắc để sử dụng.
Bạn ơi, mình có thể tạo ra cái nút lệnh cho Private Sub Auto_Open() được không bạn nhỉ, mình thấy không tạo được. Hay là tại vì nó là Private Sub nhỉ
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi là tác giả của cái add-in đó đây.
Vấn đề liên quan đến file ở chủ đề nào thì nên hỏi ở chủ đề đó để được hỗ trợ tốt hơn, ngoài ra những người dùng khác có thể nhìn thấy giải pháp nếu gặp vấn đề tương tự.
Add-in này tôi viết cũng đã lâu, code có thể cải tiến đôi chút nhưng thuật toán và các thủ thuật sử dụng trong đó tôi chưa có hướng nào cải tiến cả nếu có cải tiến thì người dùng cũng không thấy có cái gì khác biệt cả.
Nói cân nhắc sử dụng thì tôi không biết cân nhắc cái gì vì tôi chưa thấy cái nào khác để mà cân nhắc cả.
 
Upvote 0
Tôi là tác giả của cái add-in đó đây.
Vấn đề liên quan đến file ở chủ đề nào thì nên hỏi ở chủ đề đó để được hỗ trợ tốt hơn, ngoài ra những người dùng khác có thể nhìn thấy giải pháp nếu gặp vấn đề tương tự.
Add-in này tôi viết cũng đã lâu, code có thể cải tiến đôi chút nhưng thuật toán và các thủ thuật sử dụng trong đó tôi chưa có hướng nào cải tiến cả nếu có cải tiến thì người dùng cũng không thấy có cái gì khác biệt cả.
Nói cân nhắc sử dụng thì tôi không biết cân nhắc cái gì vì tôi chưa thấy cái nào khác để mà cân nhắc cả.
Tôi muốn xem ý kiến từ nhiều phía xong nếu không được thì tôi sẽ hỏi bạn ok
 
Upvote 0
Web KT

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

Back
Top Bottom