ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Is SET Statement only for Range? (https://www.excelbanter.com/excel-discussion-misc-queries/223534-set-statement-only-range.html)

FARAZ QURESHI

Is SET Statement only for Range?
 
Upon running the following code I get a message "Compile Error: Object
Required"

Sub FQCHECK()
Dim FQTEXT As String
Set FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub

While the following code executes perfectly:

Sub FQCHECK()
Dim FQRANGE As Range
Set FQRANGE = Application.InputBox(PROMPT:="SELECT CELL", Type:=8)
MsgBox ("YOU SELECTED " & FQRANGE.Address)
End Sub

What might be the cause? Is the Set statement only suitable for selection
range? Because the first piece of code works fine if entered as:
Sub FQCHECK()
Dim FQTEXT As String
FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub
--
Best Regards,
FARAZ A. QURESHI

Gary''s Student

Is SET Statement only for Range?
 
Set is for Objects:

1. ranges
2. worksheets
3. workbooks
4. graphics

Don't use it for most variables
--
Gary''s Student - gsnu200836


"FARAZ QURESHI" wrote:

Upon running the following code I get a message "Compile Error: Object
Required"

Sub FQCHECK()
Dim FQTEXT As String
Set FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub

While the following code executes perfectly:

Sub FQCHECK()
Dim FQRANGE As Range
Set FQRANGE = Application.InputBox(PROMPT:="SELECT CELL", Type:=8)
MsgBox ("YOU SELECTED " & FQRANGE.Address)
End Sub

What might be the cause? Is the Set statement only suitable for selection
range? Because the first piece of code works fine if entered as:
Sub FQCHECK()
Dim FQTEXT As String
FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub
--
Best Regards,
FARAZ A. QURESHI


Chip Pearson

Is SET Statement only for Range?
 
You use the SET statement only for object-type variables. For basic
data types (strings, integers, longs, etc), you don't use SET. If you
don't use SET with an object-type variable, the compiler will attempt
to use the default value of the object

e.g.,
Dim R As Range
Set R = Range("A1") ' Set to assign object variable
R =1234 ' no set, uses default property "Value".

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)


On Sun, 8 Mar 2009 13:24:01 -0700, FARAZ QURESHI
wrote:

Upon running the following code I get a message "Compile Error: Object
Required"

Sub FQCHECK()
Dim FQTEXT As String
Set FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub

While the following code executes perfectly:

Sub FQCHECK()
Dim FQRANGE As Range
Set FQRANGE = Application.InputBox(PROMPT:="SELECT CELL", Type:=8)
MsgBox ("YOU SELECTED " & FQRANGE.Address)
End Sub

What might be the cause? Is the Set statement only suitable for selection
range? Because the first piece of code works fine if entered as:
Sub FQCHECK()
Dim FQTEXT As String
FQTEXT = Application.InputBox(PROMPT:="Insert Keyword", Type:=2)
MsgBox ("YOU TYPED " & FQTEXT)
End Sub



All times are GMT +1. The time now is 03:58 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com