4

このような表をワード文書にコピーして、トラックのタイトルと作曲者だけを抽出したいと思います。範囲の選択は計画に従って行われます。

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.

ただし、この選択を自動的にテキスト ファイルに書き込みたいと考えています。これを行おうとすると、すべてのコンテンツが 1 行のテキストに詰め込まれ、小さな四角形 (段落記号?) がいたるところに表示されます。

VBA を使用して、手動コピーの結果を取得するにはどうすればよいですか?

4

1 に答える 1

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

スナップショット

ここに画像の説明を入力

サンプルファイル

http://sdrv.ms/Mo7Xel

ファイルをダウンロードして手順を実行するSub Allmusic()

出力

ここに画像の説明を入力

于 2012-06-03T19:24:41.810 に答える