你好,我正在尝试实现一个接口,以便可以拥有多个模型并将不同的模型传递给不同的方法。在这种情况下,我正在尝试设置一个工作簿变量,但似乎无法理解为什么这会调用 get 方法而不是 let。
正在设置值的方法:
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
这是实现ICopyItem接口的Expense模型中的内容:
'Calling this instead of let
Public Property Get ICopyItem_ItemWorkBook() As Workbook
Set ICopyItem_ItemWorkBook = Item.ItemWorkBook
End Property
这应该是它需要调用的内容:
Public Property Let ICopyItem_ItemWorkBook(value As Workbook)
Set Item.ItemWorkBook = value
End Property
有人能解释一下为什么会发生这种情况吗?