Kích hoạt add in Solver bằng VBA

Liên hệ QC

thanhwb

Thành viên mới
Tham gia
22/3/10
Bài viết
31
Được thích
6
Mình đang giải quyết một bài toán có sử dụng Solver tuy nhiên nếu chưa kích hoạt Solver trong cửa sổ lập trình VBA như trong hình thì code báo lỗi không chạy. Vậy bạn náo giúp mình viết đoạn mã kích hoạt Solver trước được không? Nghĩa là không phải làm bằng tay tick như hình vẽ
Solver.jpg
 
Mình đang giải quyết một bài toán có sử dụng Solver tuy nhiên nếu chưa kích hoạt Solver trong cửa sổ lập trình VBA như trong hình thì code báo lỗi không chạy. Vậy bạn náo giúp mình viết đoạn mã kích hoạt Solver trước được không? Nghĩa là không phải làm bằng tay tick như hình vẽ
Thứ code này xem:
1> Load SOLVER
PHP:
Sub LoadSolverRef()
  On Error Resume Next
  With ThisWorkbook.VBProject
    If .References("SOLVER") Is Nothing Then
      .References.AddFromFile Application.LibraryPath & "\SOLVER\SOLVER.XLA"
    End If
  End With
End Sub
2> Unload SOLVER
PHP:
Sub UnloadSolverRef()
  On Error Resume Next
  With ThisWorkbook.VBProject
    .References.Remove .References("SOLVER")
  End With
End Sub
Không chắc có thể chạy được trên Excel 2007 và Excel 2010 vì tôi thử code này trên Excel 2003
Lưu ý quan trọng khi chạy code này:
- Với Excel 2003, vào menu Tools\Macro\Security ---> Chuyển sang tab Trusted Publishers và check vào mục Trust access to Visual Basic Project
- Với Excel 2007 hoặc 2010, bấm tổ hợp phím Alt + T + M + S để vào phần Macro Settings và check vào mục Trust access to the VBA project object model
 
Upvote 0
Bác ơi e dùng Excel 2010 và code trên không chạy được rồi hic hic. Bác nào giải quyết giúp em với
 
Upvote 0
Bác ơi e dùng Excel 2010 và code trên không chạy được rồi hic hic. Bác nào giải quyết giúp em với
Bạn đã xem 2 dòng lưu ý dưới cùng chưa? Đã check vào mục Trust access to the VBA project object model chưa? Nếu chưa check thì code chẳng làm được cái gì cả
Tuy tôi chưa thử trên Excel 2007 và Excel 2010 nhưng tôi tin đến 90% là code này chạy được
----------------
Ai đang dùng Excel 2007 hoặc Excel 2010 vui lòng check giúp tôi code này với
 
Lần chỉnh sửa cuối:
Upvote 0
Thầy ơi e tick vào Trust access to the VBA project object model rồi mà nó vẫn không chạy ạh.
marcosetting.jpg
 
Upvote 0
Sau khi chạy code thì nó vẫn là thê này
Thử sửa đoạn code 1 thành vầy xem;
Mã:
Sub LoadSolverRef()
  On Error Resume Next
  With ThisWorkbook.VBProject
    If .References("SOLVER") Is Nothing Then
      .[B]References.AddFromFile Application.LibraryPath & "\SOLVER\SOLVER.XLA[COLOR=#ff0000]M[/COLOR]"[/B]
    End If
  End With
End Sub
Excel 2007 và Excel 2010 thì file Add-In đương nhiên không phải là XLA rồi (phải là XLAM)
 
Upvote 0
Chạy ngon lành rồi thầy ạh, cảm ơn thầy nhiều ạh. Ko có thầy e cũng ko biết xoay sở thế nào cứ phải kích hoạt bằng tay **~**
 
Upvote 0
Thầy ơi giúp e thêm một chút là có cách nào để dùng trên cả excel 2003 và 2007, 2010 được không ạh, nghĩa là dùng excel 2003 thì nó thêm SOLVER.XLA còn excel 2007,2010 thì thêm SOLVER.XLAM như thầy vừa hướng dẫn.
 
Upvote 0
Thầy ơi giúp e thêm một chút là có cách nào để dùng trên cả excel 2003 và 2007, 2010 được không ạh, nghĩa là dùng excel 2003 thì nó thêm SOLVER.XLAcòn excel 2007,2010 thì thêm SOLVER.XLAM như thầy vừa hướng dẫn.
Thì IF 1 cái là xong ngay chứ gì
Mã:
Sub LoadSolverRef()
  Dim ExlVer As Long
  On Error Resume Next
  ExlVer = Val(Application.Version)
  With ThisWorkbook.VBProject
    If .References("SOLVER") Is Nothing Then
      .References.AddFromFile Application.LibraryPath & "\SOLVER\SOLVER.XLA" & IIf(ExlVer > 11, "M", "")
    End If
  End With
End Sub
 
Upvote 0
Àh vâng e hiểu rồi, e ko biết cái này

ExlVer = Val(Application.Version)
 
Upvote 0
Web KT

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

Back
Top Bottom