Divide and conquer is the way to solve these problems, as with most computing problems.
So split your task up into sub problems. I can see three sub problems:
Calculating number of rows
Create a function that takes n as an input, and returns the total number of rows. I'll leave it up to you to decide the logic for this, perhaps you can scale it so it works for a wider range of numbers? Perhaps there is a hidden formula or particular piece of logic behind the return value? Or perhps you just need a select case statement.
Working out the biggest line width
Think about how to logically solve this problem, what do you need to learn about the pattern to continue after this step? I think you need to work out what the width of the middle row is. That would be an excellent starting point. We know the biggest line width from calling our previous function, and this is all the information we need to work out the biggest line width.
Printing the resulting picture
You now know the number of rows in this picture based on the function you wrote earlier, and the biggest size of the middle row. You should be able to loop through printing the characters correctly now, but you will have to work out how to fill the blank spaces to align characters properly.