B
Brian Herbert Withun
I am attempting to instantiate a user defined object (a Class Module)
and then pass a range of cells to that object by calling one of its
methods.
This is what I have so far:
'==================
' Class Module: "DowntimeReport"
Option Explicit
' this is intended to be an object method
Public Function PopulateByRange(R1 As Range) As Boolean
Dim MyRec As Range
For Each MyRec In R1
MyRec.Cells(1, 1).Interior.ColorIndex = 43
Next MyRec
End Function
'==================
' Module: "Kernel"
' this is just a VB Macro
Sub KWTest()
Dim MyObj As DowntimeReport
Set MyObj = New DowntimeReport
Dim MyRng As Range
Set MyRng = Selection
With MyObj
.PopulateByRange (ActiveSheet.Range("B2:F44"))
'.PopulateByRange (MyRng)
End With
End Sub
'==================
This works as written, and it changes the background color of cells
B2:F44
What I would like to have it do is change the background color of the
Selection, not just a hard-coded range of cells. If I uncomment the
line above (.PopulateByRange(MyRng)) it fails with "Object Required."
How can I pass the active selection as a range to my method
PopulateByRange() ?
In case it matters, I am initiating this by assigning the macro
"KWTest" to a custom button on a custom toolbar. I select a range of
cells and the press the custom button.
Brian Herbert Withun
and then pass a range of cells to that object by calling one of its
methods.
This is what I have so far:
'==================
' Class Module: "DowntimeReport"
Option Explicit
' this is intended to be an object method
Public Function PopulateByRange(R1 As Range) As Boolean
Dim MyRec As Range
For Each MyRec In R1
MyRec.Cells(1, 1).Interior.ColorIndex = 43
Next MyRec
End Function
'==================
' Module: "Kernel"
' this is just a VB Macro
Sub KWTest()
Dim MyObj As DowntimeReport
Set MyObj = New DowntimeReport
Dim MyRng As Range
Set MyRng = Selection
With MyObj
.PopulateByRange (ActiveSheet.Range("B2:F44"))
'.PopulateByRange (MyRng)
End With
End Sub
'==================
This works as written, and it changes the background color of cells
B2:F44
What I would like to have it do is change the background color of the
Selection, not just a hard-coded range of cells. If I uncomment the
line above (.PopulateByRange(MyRng)) it fails with "Object Required."
How can I pass the active selection as a range to my method
PopulateByRange() ?
In case it matters, I am initiating this by assigning the macro
"KWTest" to a custom button on a custom toolbar. I select a range of
cells and the press the custom button.
Brian Herbert Withun