Vi vidareutvecklar lite för säkerhetsskull.
Eftersom du inte lyckades själv ta reda på skillnaden mellan write() och writeline() räknar jag med att du är ordentligt ny i gemet.
Du måste hålla isär vad en deklaration och en tilldelning är.
Detta är själva deklarationen: Dim sw As StreamWriter
Detta en tilldelning sw = New StreamWriter("data.txt", True)
Kompilatorn håller själv inte reda på att sw får en tilldelning, dvs blir någonting annat än null (ingenting) när det sker i en ifsats. Kompilatorn kommer inte gå igenom alla grenarna i dina if-satser och sen säga: "Nej, men vad trevligt. Hur jag än gör så kommer ju sw faktiskt bli någonting". För att kompilatorn skall förstå att även efter if-satsen så har du en fungerande streamwriter så måste du deklarera den tidigare.
Dvs, innan if satsen så har du en Dim sw As StreamWriter och i if-satsen så har du bara sw = New StreamWriter("data.txt", True).
Får du några mer problem så leta gärna först lite i hjälpen och på google, hittar du inget så hjälper vi dig gärna.
Cheers Cure
Edit: Harrejävlar.. Jag har börjat stava som en kratta. Skyller på swec.