Is SET Statement only for Range?

F

FARAZ QURESHI

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
 
G

Gary''s Student

Set is for Objects:

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

Don't use it for most variables
 
C

Chip Pearson

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)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top