Сохранение выходного файла создало определенную строку и ячейку из таблицы в Microsoft Word - PullRequest
0 голосов
/ 21 мая 2018

Мне нужно взять строку из определенной строки и ячейки таблицы в моем текстовом документе и автоматически сохранить ее в качестве выходного имени файла.Так, например, строка 1 ячейка 1 называется «Самуил».Поэтому я хочу взять это имя и сделать его именем файла в выходном файле, который я создал.Таким образом, в моем коде я уже создал способ создания выходных файлов 2 на основе предыдущего условия if.Теперь дело только за автоматическим сохранением файла в качестве местоположения, которое я для него указал.Вот мой код:

Private Sub GenerateButton_Click()
Dim CellText As String
Dim i As Long

For i = 1 To 4

CellText = ActiveDocument.Tables(i).Rows(1).Cells(1).Range.Text
CellText = TrimCellText(CellText)

If CellText = "Module name" Then
            Dim fso As New FileSystemObject
            Dim ood As New FileSystemObject
            Dim filestream As TextStream
            Set filestream = fso.CreateTextFile("filepath", True)
            Set filestream = ood.CreateTextFile("filepath", True)
End If
Next
End Sub

Function TrimCellText(sCellText) As String
    Dim sLastChar As String

    sLastChar = Right(sCellText, 1)
    Do While sLastChar = Chr(7) Or sLastChar = Chr(13)
        sCellText = Left(sCellText, Len(sCellText) - 1)
        sLastChar = Right(sCellText, 1)
    Loop
    TrimCellText = sCellText
End Function

1 Ответ

0 голосов
/ 22 мая 2018

Вы только когда-либо просматривали содержимое в первой ячейке, но данные, которые вы хотите получить, находятся в ячейке рядом с ней.Попробуйте:

Private Sub GenerateButton_Click()
Dim fso As New FileSystemObject
Dim filestream As TextStream
Dim CellText As String
Dim i As Long

With ActiveDocument
  For i = 1 To 4
    If Split(.Tables(i).Cells(1, 1).Range.Text, vbCr)(0) = "Module name" Then
      CellText = Split(.Tables(i).Cells(1, 2).Range.Text, vbCr)(0)
      Set filestream = fso.CreateTextFile(CellText, True)
    End If
  Next
End With
End Sub

Примечание: Я опустил 'Dim ood As New FileSystemObject' и 'Set filestream = ood.CreateTextFile ("filepath", True) ", поскольку они кажутся избыточными,Я также переместил «Dim fso As New FileSystemObject» и «Dim filestream As TextStream», так как сомневаюсь, что вам нужно воссоздавать их на каждой итерации цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...