Excel khởi động chậm. (1 người xem)

Liên hệ QC

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

anhdepjai

Thành viên thường trực
Tham gia
16/6/10
Bài viết
383
Được thích
92
Chào mọi người,

Mình có đoạn code này, mục đích là làm thêm 1 nút vào addin để gán hàm cho nó:

Sub auto_open()
Call Auto_Close
Dim newItem As CommandBarButton
Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
With newItem
.BeginGroup = True
.Caption = "Calculate W.O"
.FaceId = 0
.OnAction = "GPE123"
End With
End Sub


Sub Auto_Close()
Dim mi As Object
Dim mb As Object
On Error Resume Next
For Each mb In MenuBars
For Each mi In mb.Menus("Tools").MenuItems
If mi.Caption = "Calculate W.O" Then
mi.Delete
End If
Next
Next
End Sub

Và đoạn module này đã được chuyển thành addin: xlam để nó tự active mỗi khi mình mở file excel bất kỳ. Tuy nhiên sau 1 thời gian sử dụng, mình thấy excel khởi động chậm đi. và khi mình bỏ nó đi thì khởi động có nhanh hơn nhưng trong tab addin mọc ra 1 đống nút như trong hình vẽ.
Mọi người hướng dẫn mình xử lý với nhé

Thanks
Capture.jpg
 
Chào mọi người,

Mình có đoạn code này, mục đích là làm thêm 1 nút vào addin để gán hàm cho nó:

Sub auto_open()
Call Auto_Close
Dim newItem As CommandBarButton
Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
With newItem
.BeginGroup = True
.Caption = "Calculate W.O"
.FaceId = 0
.OnAction = "GPE123"
End With
End Sub


Sub Auto_Close()
Dim mi As Object
Dim mb As Object
On Error Resume Next
For Each mb In MenuBars
For Each mi In mb.Menus("Tools").MenuItems
If mi.Caption = "Calculate W.O" Then
mi.Delete
End If
Next
Next
End Sub

Và đoạn module này đã được chuyển thành addin: xlam để nó tự active mỗi khi mình mở file excel bất kỳ. Tuy nhiên sau 1 thời gian sử dụng, mình thấy excel khởi động chậm đi. và khi mình bỏ nó đi thì khởi động có nhanh hơn nhưng trong tab addin mọc ra 1 đống nút như trong hình vẽ.
Mọi người hướng dẫn mình xử lý với nhé

Thanks
Nhìn hình thấy đẻ ra tầng tầng lớp các nút lệnh với các chữ gì đó mà thấy khiếp! Nghĩa là mỗi lần bạn mở, tắt file excel bất kỳ đều sinh ra 1 nút lệnh với chữ gì đó?
"xử lý" nghĩa là thế nào nhỉ?
Có phải bạn muốn xóa tất cả các nút lệnh đó. Vậy thì bạn cứ vào chỗ nào bạn copy add in đó vào rồi Delete nó đi.
 
Upvote 0
Mình xóa addin đi rồi. vì vậy nó không chạy cái đoạn auto_close (chạy đoạn này chậm. mất 10s)
Sub Auto_Close()
Dim mi As Object
Dim mb As Object
On Error Resume Next
For Each mb In MenuBars
For Each mi In mb.Menus("Tools").MenuItems
If mi.Caption = "Calculate W.O" Then
mi.Delete
End If
Next
Next
End Sub

Và vì cái auto_close không chạy nên nó mới ra 1 đống nút. (nản)
 
Upvote 0
Mình xóa addin đi rồi. vì vậy nó không chạy cái đoạn auto_close (chạy đoạn này chậm. mất 10s)
Sub Auto_Close()
Dim mi As Object
Dim mb As Object
On Error Resume Next
For Each mb In MenuBars
For Each mi In mb.Menus("Tools").MenuItems
If mi.Caption = "Calculate W.O" Then
mi.Delete
End If
Next
Next
End Sub

Và vì cái auto_close không chạy nên nó mới ra 1 đống nút. (nản)
Thế thì bạn gỡ bỏ tận gốc rễ Office đang dùng đi và cài bản Office mới. Hay mạnh hơn là Format ổ cứng lại là xong.
 
Upvote 0
Mình test trên máy mình, sau khi hoàn thiện đoạn code sẽ chuyển ra máy ngoài xưởng. và các máy đó phải sử dụng đoạn code để làm việc. tương lai là các đoạn code đó sẽ làm chậm máy ngoài xưởng.

Cách cài lại và format là không ổn. Chắc do đoạn code của mình.
 
Upvote 0
Anh em xem giúp mình với nhé, hic, đang cần quá.
Cảm ơn nhiều
 
Upvote 0
Anh em xem giúp mình với nhé, hic, đang cần quá.
Cảm ơn nhiều
 
Upvote 0
Chào mọi người,

Mình có đoạn code này, mục đích là làm thêm 1 nút vào addin để gán hàm cho nó:

Sub auto_open()
Call Auto_Close
Dim newItem As CommandBarButton
Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
With newItem
.BeginGroup = True
.Caption = "Calculate W.O"
.FaceId = 0
.OnAction = "GPE123"
End With
End Sub


Sub Auto_Close()
Dim mi As Object
Dim mb As Object
On Error Resume Next
For Each mb In MenuBars
For Each mi In mb.Menus("Tools").MenuItems
If mi.Caption = "Calculate W.O" Then
mi.Delete
End If
Next
Next
End Sub

Và đoạn module này đã được chuyển thành addin: xlam để nó tự active mỗi khi mình mở file excel bất kỳ. Tuy nhiên sau 1 thời gian sử dụng, mình thấy excel khởi động chậm đi. và khi mình bỏ nó đi thì khởi động có nhanh hơn nhưng trong tab addin mọc ra 1 đống nút như trong hình vẽ.
Mọi người hướng dẫn mình xử lý với nhé

Thanks
View attachment 155796

Thay code của bạn bằng code này (bỏ luôn Auto_Close nhé)
PHP:
Sub Auto_Open()
Dim newItem As CommandBarButton
On Error Resume Next
Set newItem = CommandBars("Tools").FindControl(Tag:="Calculate W.O")
If newItem Is Nothing Then
    Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
    With newItem
    .BeginGroup = True
    .Caption = "Calculate W.O"
    .FaceId = 0
    .OnAction = "GPE123"
    .Tag = "Calculate W.O"
    End With
End If
End Sub
Nhớ xóa đống rác của bạn trước nhé
PHP:
CommandBars("Tools").Reset
 
Upvote 0
Thay code của bạn bằng code này (bỏ luôn Auto_Close nhé)
PHP:
Sub Auto_Open()
Dim newItem As CommandBarButton
On Error Resume Next
Set newItem = CommandBars("Tools").FindControl(Tag:="Calculate W.O")
If newItem Is Nothing Then
    Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
    With newItem
    .BeginGroup = True
    .Caption = "Calculate W.O"
    .FaceId = 0
    .OnAction = "GPE123"
    .Tag = "Calculate W.O"
    End With
End If
End Sub
Nhớ xóa đống rác của bạn trước nhé
PHP:
CommandBars("Tools").Reset

Cảm ơn bạn nhé, OK rồi. thanks
 
Upvote 0
Web KT

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

Back
Top Bottom