Скопируйте диапазон значений во внешнюю строку .txt VBA - PullRequest
0 голосов
/ 04 октября 2018

У меня есть лист Excel, и мне нужно скопировать диапазон значений во внешний файл .txt в заданной строке.(Например, скопируйте значения ячеек A1: A7 и вставьте их в строку 100 ранее существовавшего файла .txt. Мне удалось выбрать диапазон значений, однако я не могу вставить их в определенную строку. Есть идеи?

1 Ответ

0 голосов
/ 04 октября 2018
This is a hack:

Public Const FPath = "C:\Temp\YourFile.txt"

Sub test()
Dim fso As New Scripting.FileSystemObject
Dim txtFile As Scripting.TextStream

Dim val As String
Dim valArr() As Variant, v As Variant
valArr = Sheet1.Range("A1:A7").Value2

Dim count As Long
For count = LBound(valArr) To UBound(valArr)
    'choose your delimiter, I used space
    val = val & IIf(count = LBound(valArr), "", " ") & valArr(count, 1)
Next count

Set txtFile = fso.OpenTextFile(FPath, ForReading, False)

Dim txtArr() As String
txtArr = Split(txtFile.ReadAll, vbCrLf)
txtFile.Close

If UBound(txtArr) >= 4 Then 'I am using 5 instead of 100 - change as necessary
    txtArr(4) = val
    're-write file
    Set txtFile = fso.OpenTextFile(FPath, ForWriting, False)
    txtFile.Write Join(txtArr, vbCrLf)
    txtFile.Close
Else
    'append to file if it has less then 5 lines
    Set txtFile = fso.OpenTextFile(FPath, ForAppending, False)
    txtFile.Write val
    txtFile.Close
End If

Set txtFile = Nothing
End Sub
...