Do úvodzoviek sa dáva reťazec, takže tu by nemali byť:
Open ThisWorkbook.Path & Cells(21, 3).Value & ".txt" For Output As #i
Kvôli čitateľnosti je lepšie použiť Range, pri čítaní hodnoty nie je potrebné použiť Value, takže:
Open ThisWorkbook.Path & Range("C21") & ".txt" For Output As #i
Netestované.