Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default How do I get a Function to return Null?

The following code gives:
Runtime error 424, Object Required

Public Function getNextRow() As Range
...
Set getNextRow = Null
...
End Function

Thanks,
Peter


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default How do I get a Function to return Null?

Public Function getNextRow() As Range
...
Set getNextRow = Nothing
...
End Function

--
Regards,
Tom Ogilvy


"Peter Chatterton" wrote in message
...
The following code gives:
Runtime error 424, Object Required

Public Function getNextRow() As Range
...
Set getNextRow = Null
...
End Function

Thanks,
Peter




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default How do I get a Function to return Null?

Thanks Tom.

Peter


"Tom Ogilvy" wrote in message
...
Public Function getNextRow() As Range
...
Set getNextRow = Nothing
...
End Function

--
Regards,
Tom Ogilvy


"Peter Chatterton" wrote in message
...
The following code gives:
Runtime error 424, Object Required

Public Function getNextRow() As Range
...
Set getNextRow = Null
...
End Function

Thanks,
Peter






  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default How do I get a Function to return Null?

I decided to test a Property value for Null
this time, instead of the Function ret. value,
but even tho the debugger shows it to be Nothing,
it doesn't satisfy IsNull.

'Sub-class':

Private rRow As Range

Public Function getNextRow As Range
iRow = iRow + 1
If iRow <= iRowCount Then
...
Else
Set rRow = Nothing
OR
rRow = Null
' Set getNextRow = Nothing
End If
End Function

Public Property Get rGetRow() As Range
Set rGetRow = rRow
End Property

Called from:

While True
oInput.getNextRow
If IsNull( oInput.rGetRow ) Then
MsgBox "DOESN'T COME HERE"
Exit Sub
End If

Peter

P.S. I said the debugger showed it to be Nothing,
but now it doesn't show anything to be Nothing or Null.


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default How do I get a Function to return Null?

In about 10 years working with excel vba, I have only found a hand full of
instances when using NULL or ISNULL had any utility. It doesn't occur
naturally in most of the situations I have been in.

--
Regards,
Tom Ogilvy

"Peter Chatterton" wrote in message
...
I decided to test a Property value for Null
this time, instead of the Function ret. value,
but even tho the debugger shows it to be Nothing,
it doesn't satisfy IsNull.

'Sub-class':

Private rRow As Range

Public Function getNextRow As Range
iRow = iRow + 1
If iRow <= iRowCount Then
...
Else
Set rRow = Nothing
OR
rRow = Null
' Set getNextRow = Nothing
End If
End Function

Public Property Get rGetRow() As Range
Set rGetRow = rRow
End Property

Called from:

While True
oInput.getNextRow
If IsNull( oInput.rGetRow ) Then
MsgBox "DOESN'T COME HERE"
Exit Sub
End If

Peter

P.S. I said the debugger showed it to be Nothing,
but now it doesn't show anything to be Nothing or Null.






  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 34
Default How do I get a Function to return Null?

The Null value can only be assigned to Variants, not to ranges.
The use of the Null variable is, that it propagates through expressions
(like the value "infinity"). The expression rRow = NULL sets all the
values in the range rRow to NULL. An object can never be set to NULL.
Only a Variant can be either assigned the value NULL or set to an
object or Nothing. So if you declare rRow as a Variant instead of a
range it might even work, although I would not consider it very
elegant.

Example

Definition of class Dirty :

Private rRow As Variant

Public Property Get GetRow() As Range
If IsNull(rRow) Then
Set GetRow = Nothing
Else
Set GetRow = rRow
End If
End Property

Public Property Let SetRow(r As Integer)
If r =< 0 Then
rRow = Null
Else
Set rRow = Rows(r)
End If
End Property

Public Property Get Value() As Variant
Value = rRow
End Property

Main module:

Sub P()
Dim V As Dirty

Set V = New Dirty
V.SetRow = 0
If IsNull(V.Value) Then
MsgBox "NULL"
Else
V.GetRow.Select
End If

End Sub

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
IF Function -- Return Null Value Help Amanda[_9_] Excel Worksheet Functions 2 January 26th 12 04:44 PM
Return null Karen Excel Worksheet Functions 3 June 11th 08 08:43 AM
how to get a function to return a null value that passes the ISBL. Hawk Excel Worksheet Functions 7 March 5th 08 05:59 AM
Compare Value in Cell 1 to a List, Return Value if Match otherwise Return Null Ben Excel Discussion (Misc queries) 2 March 15th 07 01:02 AM
Can a function return a Null (blank ) value? Maybe a custom functi colin_e Excel Worksheet Functions 2 March 16th 06 02:36 PM


All times are GMT +1. The time now is 06:27 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"