This should work.
Option Explicit
Sub abc()
Dim ColNum As Long, RowNum As Integer
Dim Line As String
Dim LineValues() As Variant
Dim OutputFileNum As Integer
Dim PathName As String
Dim ws As Worksheet
Dim lastrow As Long
PathName = ActiveWorkbook.Path
For Each ws In Worksheets
With ws
lastrow = .Cells(Rows.CountLarge, "a").End(xlUp).Row
.Range("f3").Resize(lastrow - 2, 4) = "=IF(B3=""#N/A N/A"",B2,B3)"
.Range("j10").Resize(lastrow - 9, 4) = "=STANDARDIZE(F10,AVERAGE(F3:F9,F11:F12),STDEV(F3:F9,F11:F12))"
.Range("o10").Resize(lastrow - 9, 4) = "=IF(OR(J10>5,J10<-5),F9,F10)"
.Range("b10").Resize(lastrow - 9, 4) = .Range("o10").Resize(lastrow - 9, 4).Value
.Columns("F:R").EntireColumn.Clear
OutputFileNum = FreeFile
Open PathName & "\" & .Index & ".csv" For Output Lock Write As #OutputFileNum
ReDim LineValues(1 To .Cells(1, Columns.CountLarge).End(xlToLeft).Column)
For RowNum = 1 To .Cells(Rows.CountLarge, "a").End(xlUp).Row
For ColNum = 1 To .Cells(1, Columns.CountLarge).End(xlToLeft).Column
LineValues(ColNum) = .Cells(RowNum, ColNum)
Next
Line = Join(LineValues, ",")
Print #OutputFileNum, Line
Next
End With
Close OutputFileNum
Next
End Sub
Needed to move this outsite of you Next statement
OutputFileNum = FreeFile
Open PathName & "\" & .Index & ".csv" For Output Lock Write As #OutputFileNum
Bookmarks