Helpex - Trao đổi & giúp đỡ Đăng nhập
4

Xin chào Tôi đang cố gắng triển khai một giao diện để tôi có thể có nhiều mô hình và có thể chuyển các mô hình khác nhau vào các phương thức khác nhau. Trong trường hợp này, tôi đang cố gắng thiết lập một biến sổ làm việc nhưng dường như không hiểu tại sao điều này lại gọi phương thức get thay vì let.

Phương thức đang đặt giá trị:

Public Sub OpenAllWorkbooks(ByRef fromCopyItems As Collection)
    Dim currentCopyItem As ICopyItem
    Dim wb As Variant

    For Each currentCopyItem In fromCopyItems
        ' Set currentCopyItem.ItemWorkBook = OpenWorkbook(currentCopyItem.WorkbookPath) I commented this out to make sure that was set currentCopyItem = whatever was the error
        Set wb = OpenWorkbook(currentCopyItem.WorkbookPath)
        Set currentCopyItem.ItemWorkBook = wb ' It breaks here
        currentCopyItem.IsOpen = True
    Next currentCopyItem

End Sub

Đây là trong Mô hình chi phí triển khai ICopyItem:

'Calling this instead of let
Public Property Get ICopyItem_ItemWorkBook() As Workbook
    Set ICopyItem_ItemWorkBook = Item.ItemWorkBook 
End Property

Đây là những gì nó nên được gọi:

Public Property Let ICopyItem_ItemWorkBook(value As Workbook)
    Set Item.ItemWorkBook = value
End Property

ai đó có thể vui lòng giải thích tại sao điều này đang xảy ra không

4 hữu ích 0 bình luận 519 xem chia sẻ
4

Vấn đề cơ bản ở đây là bạn đã xác định một người truy cập Property Letthay vì một người truy cập Property Set. Property Letthường được dùng để Property Setgán các kiểu giá trị và gán các kiểu đối tượng.

Lệnh gọi Property Getxảy ra do đoạn sau trong phần 5.4.3.9 của đặc tả Ngôn ngữ VBE , mô tả cơ chế dự phòng trong trường hợp không có Property Set.

Nếu biểu thức l được phân loại là thuộc tính hoặc hàm và tham chiếu đến Thuộc tính hoặc hàm bao quanh, hãy gán giá trị biểu thức cưỡng chế cho giá trị trả về của thủ tục kèm theo.

4 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ excel vba , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading