There are a number of mistakes
i would recommend you google
vba if statement
vba declaring variables
vba set statement
ActiveDocument.Paragraphs(6).Range
Range is a property that returns a range object
it can be used in two ways.
1. to access further properties so you can set a value
e.g
Code:
ActiveDocument.Paragraphs(6).Range.Text="Hello world"
2. assign the range to another variable
Code:
set myRange = ActiveDocument.Paragraphs(6).Range.Text="Hello world"
means that myRange points to the range of paragraph(6) of the active document.
Range is an 'object' which is why you have to use set rather than just
Code:
myRange = ActiveDocument.Paragraphs(6).Range.Text="Hello world"
as in
So at the moment you code does not use the value returned by the statement
Code:
ActiveDocument.Paragraphs(6).Range
The variable myRange is declared but nothing is ever assigned to it.
The if statement exists in two forms (three if you want to b pedantic)
1. Use on a single line
If <condition> then <do something
2 Use over a number of lines
if <condition then
<do something>
ElseIf <condition> then
<do something else>
Else
< do stuff not captured by the above conditions>
End if
The else and elseif are optional statements. Else can only occur once but elseif can occur as many times as you want.
Your code misses out the mandatory Then and does not close with the End if.
The third version is called the immediate if and is a shorthand versions of
If <condition> then
do one statement
Else
do one statement
end if
and takes the form
<value> =Iif(<condition>, true statement, false statement)
Its very commonly used when you need to set a variable to one of two values depending on something that happened elsewhere.