Sub CreateMatrix() '(c) Gerald Lasser Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("D:\testfile.dat", True) R = 4 dR = 300 C = 5 dC = 50 fTime = 0.5 fMod = 1 fZ = 0.003 For col = C To C + dC For rw = R To R + dR valX1 = CStr(rw * fTime) valY1 = CStr(col * fMod) valZ1 = CStr((0 - Cells(rw, col)) * fZ) valX2 = CStr((rw - 1) * fTime) valY2 = CStr((col) * fMod) valZ2 = CStr((0 - Cells(rw - 1, col)) * fZ) valX3 = CStr((rw - 1) * fTime) valY3 = CStr((col - 1) * fMod) valZ3 = CStr((0 - Cells(rw - 1, col - 1)) * fZ) valX4 = CStr((rw) * fTime) valY4 = CStr((col - 1) * fMod) valZ4 = CStr((0 - Cells(rw, col - 1)) * fZ) If Cells(1, col) = "X" Then Line1 = "2 25 " Line3 = "3 14 " Line5 = "3 14 " Else Line1 = "2 0 " Line3 = "3 7 " Line5 = "3 7 " End If Line2 = "" Line4 = "" Line6 = "" Line1 = Line1 + valX1 + " " _ + valY1 + " " _ + valZ1 + " " _ + valX2 + " " _ + valY2 + " " _ + valZ2 Line3 = Line3 + valX1 + " " _ + valY1 + " " _ + valZ1 + " " _ + valX2 + " " _ + valY2 + " " _ + valZ2 + " " _ + valX3 + " " _ + valY3 + " " _ + valZ3 Line5 = Line5 + valX1 + " " _ + valY1 + " " _ + valZ1 + " " _ + valX3 + " " _ + valY3 + " " _ + valZ3 + " " _ + valX4 + " " _ + valY4 + " " _ + valZ4 If Right(Line1, 2) = " 0" Then Line2 = "0" Else For I = 1 To Len(Line1) If Mid(Line1, I, 1) = "," Then Line2 = Line2 + "." Else Line2 = Line2 + Mid(Line1, I, 1) End If If Mid(Line1, I, 3) = " 0 " Then Line2 = "0" + Right(Line2, Len(Line2) - 1) End If Next End If If Right(Line3, 2) = " 0" Then Line4 = "0" Else For I = 1 To Len(Line3) If Mid(Line3, I, 1) = "," Then Line4 = Line4 + "." Else Line4 = Line4 + Mid(Line3, I, 1) End If If Mid(Line3, I, 3) = " 0 " Then Line4 = "0" + Right(Line4, Len(Line4) - 1) End If Next End If If Right(Line5, 2) = " 0" Then Line6 = "0" Else For I = 1 To Len(Line5) If Mid(Line5, I, 1) = "," Then Line6 = Line6 + "." Else Line6 = Line6 + Mid(Line5, I, 1) End If If Mid(Line5, I, 3) = " 0 " Then Line6 = "0" + Right(Line6, Len(Line6) - 1) End If Next End If If Left(Line4, 1) <> "0" Then a.WriteLine Line4 End If If Left(Line6, 1) <> "0" Then a.WriteLine Line6 End If If Left(Line2, 1) <> "0" Then a.WriteLine Line2 End If Next Next a.Close End Sub