Word VBA:表格单元格范围到文本文件

时间:2012-06-03 19:04:40

标签: vba word-vba

我想在word文档中复制this之类的表格,并仅提取曲目标题和作曲家。范围的选择按计划进行:

Dim myCells As Range
With ActiveDocument
    Set myCells = .Range(Start:=.Tables(1).Cell(2, 3).Range.Start, _
        End:=.Tables(1).Cell(.Tables(1).Rows.Count, 3).Range.End)
    myCells.Select
End With

现在,当我手动复制此选择并将其粘贴到记事本中时,我得到了我想要的内容:

Title
Composer
Title
Composer
etc.

但是,我想将此选择自动写入文本文件。当我尝试这样做时,所有内容都塞在一行文字中,小方块(段落符号?)随处可见。

如何使用VBA获得手动复制的结果?

1 个答案:

答案 0 :(得分:4)

试试这个

Sub Allmusic()
    Dim filesize As Integer
    Dim FlName As String, tempStr As String
    Dim i As Long
    Dim MyAr() As String

    '~~> Name of Output File
    FlName = "C:\Sample.Txt"

    '~~> Get a free file handle
    filesize = FreeFile()

    '~~> Open your file
    Open FlName For Output As #filesize

    With ActiveDocument
        For i = 2 To .Tables(1).Rows.Count

            '~~> THIS LINE WILL NOT REFLECT CORRECTLY IN THE BROWSER
            '~~> PLEASE REFER TO THE SCREENSHOT OR THE ATTACHED FILE
            tempStr = Replace(.Tables(1).Cell(i, 3).Range.Text, "", "")

            If InStr(1, tempStr, Chr(13)) Then
                MyAr = Split(tempStr, Chr(13))
                Print #filesize, MyAr(0)
                Print #filesize, MyAr(1)
            Else
                Print #filesize, tempStr
            End If
            Print #filesize, ""
        Next i
    End With

    Close #filesize
End Sub

<强>快照

enter image description here

样本文件

http://sdrv.ms/Mo7Xel

下载文件并运行Sub Allmusic()

程序

<强>输出

enter image description here

HTH