Khai báo biến như thế nào để dùng chung được cho các VBAProject? (1 người xem)

Liên hệ QC

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Xín chào các bạn GPE!
Tôi có một vấn đề là: Khai báo biến như thế nào để dùng chung được cho các VBAProject?
Untitled03.png
Xin cảm ơn!
 
có 1 cách viết là gôm các macro xử lý tổng thể vào 1 file tổng, các file macro máy con chỉ cần link đến file tổng này gọi hàm hoặc biến thôi, người bảo trì chỉ cần sửa trên macro tổng này, bạn google xem,
 
Upvote 0
Nếu phải làm việc nhiều, và công cụ đó thực hiện các thao tác y hệt và lặp đi lặp lại thì bạn nên để thành add-in;
 
Upvote 0
Quý vị nhầm rồi.
Biến "dùng chung cho các VBAProjects" có nghĩa là tôi có thể khai báo một biến a nào đó, mở file F1 ra, đọc thấy a = 0 (trị mặc định), mở file F2 ra, gán a = 10; quay lại F1 đọc thấy a = 10. Đóng files lại, a vẫn là 10. Muốn reset a lại thì phải đóng Excel, và mở lại, lúc ấy a mới mang trị mặc định.
Túm lại là biến toàn cục Application chứ biến toàn cục thường chỉ có tầm vực Project.

Có hai cách thực hiện:
1. Khai báo chúng trong một project nào đó, đổi tên project, rồi reference project ấy.
2. Dùng kỹ thuật Hidden Names.
 
Upvote 0
Gemini!
Có hai cách chính để khai báo biến để có thể dùng chung cho nhiều VBA project khác nhau trong Excel:

1. Sử dụng Module:

Bước 1: Tạo Module:

  • Mở project VBA mà bạn muốn chứa biến dùng chung.
  • Nhấp chuột phải vào project trong cửa sổ VBA Project Explorer và chọn Insert > Module.
  • Một module mới sẽ được tạo và thêm vào project.
Bước 2: Khai báo biến:
  • Trong module, sử dụng từ khóa Public để khai báo biến dùng chung. Ví dụ:
Mã:
Public tenBien As String
Public giaTri As Double
Hãy thận trọng khi sử dụng các đoạn mã.

Bước 3: Sử dụng biến trong các project khác:
  • Mở project VBA khác mà bạn muốn sử dụng biến dùng chung.
  • Trong cửa sổ VBA Project Explorer, nhấp chuột phải vào project chứa module và chọn Add Reference.
  • Chọn project chứa module biến dùng chung và nhấp OK.
  • Sau đó, bạn có thể truy cập các biến dùng chung bằng tên của chúng trong project của mình. Ví dụ:
Mã:
Sub Main()
    tenBien = "Giá trị mới"
    MsgBox giaTri
End Sub


2. Sử dụng Class:

Bước 1: Tạo Class:

  • Mở project VBA mà bạn muốn chứa biến dùng chung.
  • Nhấp chuột phải vào project trong cửa sổ VBA Project Explorer và chọn Insert > Class.
  • Một class mới sẽ được tạo và thêm vào project.
Bước 2: Khai báo biến:
  • Trong class, sử dụng từ khóa Private để khai báo các biến dùng chung. Ví dụ:
Mã:
Private tenBien As String
Private giaTri As Double


Bước 3: Tạo các thủ tục:
  • Tạo các thủ tục public để truy cập và sửa đổi các biến dùng chung. Ví dụ:
Mã:
Public Property Get TenBien() As String
    TenBien = tenBien
End Property
Mã:
Public Property Let TenBien(Value As String)
    tenBien = Value
End Property
Mã:
Public Property Get GiaTri() As Double
    GiaTri = giaTri
End Property
Mã:
Public Property Let GiaTri(Value As Double)
    giaTri = Value
End Property


Bước 4: Sử dụng class trong các project khác:
  • Mở project VBA khác mà bạn muốn sử dụng biến dùng chung.
  • Trong cửa sổ VBA Project Explorer, nhấp chuột phải vào project chứa class và chọn Add Reference.
  • Chọn project chứa class biến dùng chung và nhấp OK.
  • Sau đó, bạn có thể tạo một thể hiện của class và sử dụng các thuộc tính và phương thức của nó để truy cập và sửa đổi các biến dùng chung. Ví dụ:
Mã:
Sub Main()
    Dim bienChung As New TenBienClass
    bienChung.TenBien = "Giá trị mới"
    MsgBox bienChung.GiaTri
End Sub


Lưu ý:
  • Khi sử dụng module, bạn cần đảm bảo rằng module được đặt trong cùng một thư mục với các project VBA khác mà bạn muốn sử dụng nó.
  • Khi sử dụng class, bạn cần đảm bảo rằng project chứa class được reference trong các project VBA khác mà bạn muốn sử dụng nó.
  • Bạn nên sử dụng cách nào phù hợp nhất với nhu cầu của bạn. Nếu bạn chỉ cần khai báo một vài biến dùng chung, thì module là một lựa chọn tốt. Nếu bạn cần khai báo nhiều biến dùng chung hoặc cần kiểm soát truy cập vào các biến, thì class là một lựa chọn tốt hơn.
Ngoài ra:
  • Bạn có thể sử dụng các biến toàn cầu (application-level variables) để khai báo biến dùng chung cho tất cả các project VBA trong một instance Excel. Tuy nhiên, cách này không được khuyến khích vì nó có thể dẫn đến xung đột và lỗi trong chương trình của bạn.
  • Bạn cũng có thể sử dụng file Excel bên ngoài để lưu trữ và truy cập các biến dùng chung. Tuy nhiên, cách này có thể gây tốn thời gian và khó quản lý hơn.
Hy vọng thông tin này hữu ích! Cảm ơn Gemini!
 
Upvote 0
Chỗ này bạn có thể hướng dẫn bằng hình ảnh được không? Mình không thấy Add Reference ở đâu cả
Có hai cách chính để add reference trong VBA Excel:

1. Sử dụng giao diện Visual Basic Editor (VBE)
  • Mở VBE bằng cách nhấn phím tắt Alt + F11.
  • Trong menu Tools, chọn References.
  • Hộp thoại References sẽ hiện ra.
  • Chọn thư viện tham chiếu bạn muốn add từ danh sách Available References.
  • Nhấp OK.
tools.png

2. Sử dụng VBA code
Bạn có thể sử dụng phương thức AddFromFile của đối tượng VBProject để add reference bằng VBA code. Ví dụ:

Mã:
Sub AddReference()
    ' Đường dẫn đến file thư viện tham chiếu
    Const RefFile As String = "C:\Program Files\Microsoft Office\Office15\MSWORD.OLB"

    ' Add reference Microsoft Word 15.0 Object Library
    ActiveWorkbook.VBProject.References.AddFromFile RefFile
End Sub

Lưu ý:
  • Một số thư viện tham chiếu có thể không có trong danh sách Available References. Trong trường hợp này, bạn cần sử dụng VBA code để add reference.
  • Nếu bạn add reference cho một ứng dụng khác, bạn cần đảm bảo rằng ứng dụng đó đã được cài đặt trên máy tính của người dùng.

Ngoài ra, bạn có thể tham khảo thêm các nguồn sau:

Hỏi cách sử dụng, khai thác thư viện Tools/References:​


Check or add an object library reference (VBA):
https://learn.microsoft.com/en-us/office/vba/api/overview/
 
Upvote 0
Có hai cách chính để add reference trong VBA Excel:

1. Sử dụng giao diện Visual Basic Editor (VBE)
  • Mở VBE bằng cách nhấn phím tắt Alt + F11.
  • Trong menu Tools, chọn References.
  • Hộp thoại References sẽ hiện ra.
  • Chọn thư viện tham chiếu bạn muốn add từ danh sách Available References.
  • Nhấp OK.
View attachment 301058

2. Sử dụng VBA code
Bạn có thể sử dụng phương thức AddFromFile của đối tượng VBProject để add reference bằng VBA code. Ví dụ:

Mã:
Sub AddReference()
    ' Đường dẫn đến file thư viện tham chiếu
    Const RefFile As String = "C:\Program Files\Microsoft Office\Office15\MSWORD.OLB"

    ' Add reference Microsoft Word 15.0 Object Library
    ActiveWorkbook.VBProject.References.AddFromFile RefFile
End Sub

Lưu ý:
  • Một số thư viện tham chiếu có thể không có trong danh sách Available References. Trong trường hợp này, bạn cần sử dụng VBA code để add reference.
  • Nếu bạn add reference cho một ứng dụng khác, bạn cần đảm bảo rằng ứng dụng đó đã được cài đặt trên máy tính của người dùng.

Ngoài ra, bạn có thể tham khảo thêm các nguồn sau:

Hỏi cách sử dụng, khai thác thư viện Tools/References:​


Check or add an object library reference (VBA):
https://learn.microsoft.com/en-us/office/vba/api/overview/
Cảm ơn bạn, nhưng cái quan trọng nhất là chọn cái references nào trong đây bạn?
Untitled 01.png
 
Upvote 0
Web KT

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

Back
Top Bottom