使用Excel VBA将Excel工作表数据导出为SPSS语法格式(.sps)时出现问题

时间:2018-11-19 06:17:19

标签: excel vba excel-vba spss

我目前正在处理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错误显示

希望收到任何可以帮助我的人的信。

非常感谢!

1 个答案:

答案 0 :(得分:1)

k,感谢您的及时回答。

进行了更深入的挖掘,并提供了一个解决方案,该解决方案涉及将库引用作为附加映像启用。通过在模块编辑窗口中转到“工具>>参考”来完成此操作。

enter image description here

奇怪的是,我已经在寻找解决方案已有3周了,幸运的是,今天才遇到这种解决方案。 :)