我目前正在处理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
如上所述,这种方法应该可以,但我感到困惑,为什么SPSS无法读取我创建的* .sps文件的20%的时间。当发生这种异常时,可以使用任何其他编辑工具(例如notepad / npp / sublime / UE / etc。)正确查看* .sps文件,但是在IBM SPSS Statistics中打开该文件时,它只能读为一行汉字。
举个例子,这些是我的* .sps文件中包含的行,它们实际上是非常简单的命令行:
重命名变量(AU3a01 = AU3a_1)。重命名变量(AU3a02 = AU3a_2)。重命名变量(AU3a03 = AU3a_3)。重命名变量(AU3a04 = AU3a_4)。重命名变量(AU3a05 = AU3a_5)。重命名变量(AU3a06 = AU3a_6)。变量标签AU3a_1“品牌A”。可变标签 AU3a_2“品牌B”。变量标签AU3a_3“品牌C”。可变标签 AU3a_4“品牌D”。变量标签AU3a_5“品牌E”。可变标签 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错误显示
希望收到任何可以帮助我的人的信。
非常感谢!