Я сохраняю данные из электронной таблицы в текстовый файл, и каждый раз, когда я открываю их, после последних данных появляется пустая строка, которая должна иметь последнее значение. Поэтому мне нужно заново открыть текстовый файл и нажать клавишу Backspace из текстового файла, а затем повторно сохранить его. Я ищу vba, чтобы сделать это автоматически при сохранении.
Сейчас я провел некоторые исследования и проверил их, но ни один из них не работает. Это означает, что они не удаляют пустую строку. Когда я выполняю свои текущие коды, часть сохранения работает, но не часть удаления строки. Ничего не происходит, нет ошибок, и это не удаляет пустую строку. Я включил изображения того, что мне нужно сделать VBA, обратите внимание, где курсор должен быть. Я надеюсь добиться сохранения и удаления пустой строки в 1 модуле.
Sub Rectangle1_Click()
Dim strTemplateFile As String
Dim strFname As String
Dim strFnameClean As String
Dim FileSaveName
Application.DisplayAlerts = False
' Save file name and path into a variable
strTemplateFile = ActiveWorkbook.FullName
' Default directory would be c:\temp. Users however will have the ability
' to change where to save the file if need be.
FileSaveName = Application.GetSaveAsFilename( _
InitialFileName:="C:\Users\SC1324\Desktop\test.txt", _
fileFilter:="Text Files (*.txt), *.txt")
If FileSaveName = False Then
Exit Sub
End If
' Save file as .txt TAB delimited fileSaveName, FileFormat:=36,
ActiveWorkbook.SaveAs Filename:= _
FileSaveName, FileFormat:=xlTextWindows, _
CreateBackup:=False
strFname = ActiveWorkbook.FullName
strFnameClean = Replace(ActiveWorkbook.FullName, ".txt", "clean.txt")
Call Test(strFname, strFnameClean)
End Sub
Sub Test(ByVal strFname, ByVal strFnameClean)
Const ForReading = 1
Const ForWriting = 2
Dim objFSO As Object
Dim objTF As Object
Dim strAll As String
Dim varTxt
Dim lngRow As Long
iNumberOfLinesToDelete = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTF = objFSO.OpenTextFile(strFname, ForReading)
strAll = objTF.ReadAll
objTF.Close
Set objTF = objFSO.createTextFile(strFnameClean, ForWriting)
objTF.write Mid(strAll, 1, Len(strAll) - 2)
objTF.Close
End Sub