适用于Mac OSX的Excel VBA代码:将Excel行输出到一系列文本文件(用于主题建模)

适用于Mac OSX的Excel VBA代码:将Excel行输出到一系列文本文件(用于主题建模),excel,vba,macos,topic-modeling,Excel,Vba,Macos,Topic Modeling,我正在做我的第一点主题建模,我正在用宏从电子表格中的每一行生成单独的文本文件(如下所述:)。该页面上提到的代码不是我需要做的,因此我使用以下代码: 它应该为每一行创建一个新的文本文件,使用a列作为文件名,B列作为内容 Sub Export_Files() Dim sExportFolder, sFN Dim rArticleName As Range Dim rDisclaimer As Range Dim oSh As Worksheet Dim oFS

我正在做我的第一点主题建模,我正在用宏从电子表格中的每一行生成单独的文本文件(如下所述:)。该页面上提到的代码不是我需要做的,因此我使用以下代码:

它应该为每一行创建一个新的文本文件,使用a列作为文件名,B列作为内容

Sub Export_Files()
    Dim sExportFolder, sFN
    Dim rArticleName As Range
    Dim rDisclaimer As Range
    Dim oSh As Worksheet
    Dim oFS As Object
    Dim oTxt As Object

    'sExportFolder = path to the folder you want to export to
    'oSh = The sheet where your data is stored
    sExportFolder = "C:\Disclaimers"
    Set oSh = Sheet1

    Set oFS = CreateObject("Scripting.Filesystemobject")

    For Each rArticleName In oSh.UsedRange.Columns("A").Cells
        Set rDisclaimer = rArticleName.Offset(, 1)

        'Add .txt to the article name as a file name
        sFN = rArticleName.Value & ".txt"
        Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 2, True)
        oTxt.Write rDisclaimer.Value
        oTxt.Close
    Next
End Sub
但是,它给了我以下错误消息:

Run-time error '429':

ActiveX component can't create object.
这是因为我在Mac电脑上。当我单击Debug按钮时,它会以黄色突出显示这一行:

Set oFS = CreateObject("Scripting.Filesystemobject")

有没有办法调整这条线,让它在Mac上工作?如果有区别的话,我正在使用Excel 2011和VBA 14.0。如果这是一台Windows PC,以下内容将允许您避免使用
文件系统对象:

Sub Export_Files()
    Dim sExportFolder As String
    Dim rArticleName As Range
    Dim rDisclaimer As Range
    Dim oSh As Worksheet

    'sExportFolder = path to the folder you want to export to
    'oSh = The sheet where your data is stored
    sExportFolder = "C:\Disclaimers"
    Set oSh = Sheet1

    For Each rArticleName In oSh.UsedRange.Columns("A").Cells
        Set rDisclaimer = rArticleName.Offset(, 1)
        Open sExportFolder & Application.PathSeparator & rArticleName.Value & ".txt" For Output As #1
        Print #1, rDisclaimer.Value
        Close #1    
    Next
End Sub

我不知道这在Mac电脑上是否有效。

如果这是Windows,我会使用
Open sExportFolder&Application.path separator&rArticleName.Value&“.txt”将输出为#1
打印#1,rDisclaimer.Value
关闭#1
,但我不知道这在Mac电脑上是否可行,我用这一行替换了“setofs=CreateObject(“Scripting.Filesystemobject”)”。它给了我这个错误:编译错误:语法错误。我该怎么办?有没有办法从这些评论中获得回车?我将把这个建议作为“答案”发布,这样你就可以看到换行符在哪里,这样你就可以把它放在正确的位置。它说:运行时错误:找不到路径。我正在将路径复制到我的文件夹(/Users/[myusername]/Desktop/test/text_文件),并将其粘贴到“C:\Disclaimers”上。这应该行得通,不是吗?@RaphaelAizanSasayama我从未使用过Mac电脑,所以我不确定这条路是否行得通。(我以为Mac使用了
作为路径分隔符,但我没有简单的方法来区分。)也许可以插入一行,说
MsgBox thiswoolk.FullName
,看看它说当前工作簿的路径是什么-这应该让你知道路径应该如何构造。