Is SET Statement only for Range?

  • Thread starter Thread starter FARAZ QURESHI
  • Start date Start date
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
 
Set is for Objects:

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

Don't use it for most variables
 
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)
 
Back
Top