Превращение рабочей таблицы Excel в член модуля класса - PullRequest
2 голосов
/ 07 декабря 2011

Я пытаюсь создать модуль класса, чтобы встроить некоторые базовые функции в рабочую книгу.Проблема, с которой я сталкиваюсь, заключается в попытке добавить лист в качестве члена класса.Я продолжаю получать «Недопустимое использование свойства» как ошибку.

Объявление моего класса:

Option Explicit

Private pboolLock As Boolean
Private pintColCount, pintRowCount As Integer
Private pWorksheet As Excel.Worksheet

'Lock bit properties:
Property Get boolLock() As Boolean
    boolLock = pboolLock
End Property
Property Let boolLock(boollockval As Boolean)
    pboolLock = boollockval
End Property

'Utility properties- no sets
Property Get ColCount() As Integer
    ColCount = pintColCount
End Property
Property Get RowCount() As Integer
    RowCount = pintRowCount
End Property

'Worksheet specific props
Property Set dpDefine(ByRef wks As Worksheet)
    Set pWorksheet = wks
End Property
Property Get dpDefine() As Worksheet
    dpDefine = pWorksheet
End Property

Другой модуль: Создание экземпляра класса:

Sub tryClass()
    Dim thisdp As New Cdatapage
    Dim iansTest As String

    iansTest = Sheets("typical datapage").Name
    'this works, so reference is being passed:
    MsgBox ("The name is " & iansTest)

    'this doesn't work:
    thisdp.dpDefine (Sheets("typical datapage"))
End Sub

Есть предложения?Спасибо.

1 Ответ

1 голос
/ 07 декабря 2011

Свойство Set, поэтому вам нужно:

Set thisdp.dpDefine = Sheets("typical datapage")

Или, если вы измените dpDefine на Let, вы можете;

thisdp.dpDefine = Sheets("xxx")
...