I'm not sure what you are doing. Does this help in the right direction?
Some Notes 
Set FirstRow = rng2.Rows(1)
Set FRow = rng1.Rows(1)
These lines set the variables to the first cell of each range.
Since they are one cell ranges and not arrays, For j = LBound(FirstRow) To UBound(FirstRow) will error out because UBound/LBound return the first and last indices of arrays
(this looks like you are trying to step trough a range of cells with your loop)
variable j: is a number but Intersect(j, FRow) requires range parameters, testing to see if the address of the one is contained in the other
Selection.Copy: Since you don't select anything with your code, Selection is whichever cell on the sheet just happened to be selected if the code had run (it won't). Nor will it ever change via your code.
Else: You don't carry out any process when the If returns a False, therefore you don't need the Else line.
Bookmarks