Try:
Sub Test_Input()
Dim InData As String, SheetName As String, NamedRng As String, NewVal As String
Dim dict, uniq
Set dict = CreateObject("scripting.Dictionary")
Open "TESTFILE3" For Input As #1
Do Until EOF(1)
Line Input #1, InData
SheetName = GetSubString(InData, Chr(9), 1)
NamedRng = GetSubString(InData, Chr(9), 2)
NewVal = GetSubString(InData, Chr(9), 3)
uniq = SheetName & "|" & NamedRng
If dict.exists(uniq) Then dict(uniq) = dict(uniq) + 1 Else dict(uniq) = 1
ThisWorkbook.Sheets(SheetName).Range(NamedRng).Cells(dict(uniq)).Value = NewVal
Loop
Close #1
End Sub
And this is a more streamlined version of your test macro that so far seems to produce the same output:
Sub test2()
Dim cell As Range, WS As Worksheet, myRanges, rng
Set WS = ThisWorkbook.Sheets("sheet1")
Open "TESTFILE3" For Output As #1 ' Open file for output.
myRanges = Array("CellN1", "CellN2", "CellN3", "CellN4", "CellRng1", "CellRng2")
For Each rng In myRanges
For Each cell In Range(rng).Cells
If Trim(cell) <> "" Then Print #1, WS.Name & vbTab & rng & vbTab & cell
Next cell
Next rng
Close #1
End Sub