Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA类模块作为工作表_Vba_Oop - Fatal编程技术网

VBA类模块作为工作表

VBA类模块作为工作表,vba,oop,Vba,Oop,请考虑以下“代码”: 这可能吗?类模块会起作用吗?我尝试了下面的代码,但出现错误438(对象不支持此属性或方法)。有可能吗 'CLASS MODULE CODE: MyWorkingSheet Class Private Sub class_initialize() Me = ActiveSheet End Sub 'NORMAL MODULE CODE Sub MySub() Dim MyTodaySheet As MyWorkingSheet Set MyTodaySheet

请考虑以下“代码”:

这可能吗?类模块会起作用吗?我尝试了下面的代码,但出现错误438(对象不支持此属性或方法)。有可能吗

'CLASS MODULE CODE: MyWorkingSheet Class
Private Sub class_initialize()
  Me = ActiveSheet
End Sub

'NORMAL MODULE CODE
Sub MySub()
  Dim MyTodaySheet As MyWorkingSheet
  Set MyTodaySheet = New MyWorkingSheet
End Sub
类别:

'CLASS MODULE CODE: MyWorkingSheet Class
Private m_sht As WorkSheet

'set a reference to the worksheet you want to "wrap" with your class
Property Set Sheet(sht As WorkSheet)
    Set m_sht = sht
End Property

Sub DeleteAllRedWords()
    'in all your class methods reference m_sht
    With m_sht.UsedRange
        'code to delete all red words
    End With
End Sub

'other methods/functions

Tim,既然我的对象是一个工作表,intellisense是否可以同时识别我创建的方法和标准excel工作表方法,并在下拉列表中向我显示所有这些方法?不过,你的对象不是工作表,它只包含一个工作表。如果希望为sheet对象创建Intellisense,则需要创建一个Get
sheet
属性(返回类型工作表)并使用
MySheet.sheet.UsedRange
(例如)
Sub MySub()

  Dim MySheet As New MyWorkingSheet

  Set MySheet.Sheet = ActiveSheet

  MySheet.DeleteAllRedWords

  'etc

End Sub
'CLASS MODULE CODE: MyWorkingSheet Class
Private m_sht As WorkSheet

'set a reference to the worksheet you want to "wrap" with your class
Property Set Sheet(sht As WorkSheet)
    Set m_sht = sht
End Property

Sub DeleteAllRedWords()
    'in all your class methods reference m_sht
    With m_sht.UsedRange
        'code to delete all red words
    End With
End Sub

'other methods/functions