В настоящее время я работаю над макросом Excel, в котором выходной лист необходимо экспортировать в формат * .sps (синтаксис SPSS).
Вот точный код, который я использую, который работает 80% времени:
Sub Print_CM_to_sps()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(ThisWorkbook.Path & "\All_CM_Edits.sps") Then
Set LogData = FSO.OpenTextFile(ThisWorkbook.Path & "\All_CM_Edits.sps", 2, True)
LogData.Close
Set LogDatas = FSO.OpenTextFile(ThisWorkbook.Path & "\All_CM_Edits.sps", 8, True)
For i = 2 To lstRow
LogDatas.WriteLine ThisWorkbook.Sheets("Data").Range("A" & i).value
Next i
Else
Set NewFile = FSO.CreateTextFile(ThisWorkbook.Path & "\All_CM_Edits.sps", 8, True)
For i = 2 To lstRow
NewFile.WriteLine ThisWorkbook.Sheets("Data").Range("A" & i).value
Next i
End If
End Sub
Как уже упоминалось, этот подход должен быть в порядке, но я запутался, почему 20% времени мой созданный файл * .sps не читается SPSS. При возникновении такой аномалии файл * .sps можно правильно просматривать с помощью любых других инструментов редактирования (например, notepad / npp / sublime / UE / и т. Д.), Но при открытии в IBM SPSS Statistics он читается только как одна строка китайских символов.
Чтобы привести пример, это строки, которые содержатся в моем файле * .sps, которые на самом деле являются очень простыми командными строками:
Переименовать переменные (AU3a01 = AU3a_1). Переименовать переменные (AU3a02 =
AU3a_2). Переименовать переменные (AU3a03 = AU3a_3). Переименовать переменные (AU3a04
= AU3a_4). Переименовать переменные (AU3a05 = AU3a_5). Переименовать переменные (AU3a06 = AU3a_6). Переменная маркировка AU3a_1 «Бренд А». Переменные метки
AU3a_2 "Марка Б". Переменная маркировка AU3a_3 «Бренд C». Переменные метки
AU3a_4 "Марка Д". Переменная маркировка AU3a_5 «Бренд Е». Переменные метки
AU3a_6 "Бренд F". Значения / AU3a_1 до AU3a_6 1 «1 - Ужасно» 2
"2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "7" 8 "8" 9 "9" 10 "10 - Отлично".
Выполнить.
Вот скриншот ошибки, о которой я упоминал:
Отображение ошибки SPSS
Надеюсь услышать от кого-нибудь, кто может мне помочь.
Большое спасибо!