Здравствуйте.
Написала код для изменения закрытого файла Excel "File_Target.xls". Он лежит на рабочем столе, это прописано в коде (его местоположение).
Файл .xls - Excel 1997-2003 - обрабатывается без запинки. И совершенно не работает, если применить его к файлу более нового поколения - .xlsx, .xlsm.
Кто может подсказать, что нужно изменить в коде, чтобы срабатывало для файлов более нового поколения - .xlsx, .xlsm ?
Option Explicit
Option Compare Text
Sub V_Sub_Modify_closed_File_Target_xls()
Call V_Sub_Closed_File_Change(VBA.Environ("USERPROFILE") & "\Desktop\File_Target.xls")
End Sub 'V_Sub_Modify_closed_File_Target_xls
Sub V_Sub_Closed_File_Change(LSp_File_name As String)
Dim binaryStream As Object
With CreateObject("ADODB.Stream") 'End With 'With CreateObject("ADODB.Stream")
.Type = 2: .Charset = "utf-8": .Open
.WriteText "Nous sommes le " & CDate(VBA.Now)
Set binaryStream = CreateObject("ADODB.Stream")
binaryStream.Type = 1: binaryStream.Mode = 3: binaryStream.Open
.Position = 3: .CopyTo binaryStream 'Skip BOM bytes
.flush: .Close
binaryStream.SaveToFile LSp_File_name, 2
binaryStream.Close
End With 'With CreateObject("ADODB.Stream")
MsgBox "File_Target.xls on the desktop successfully updated", vbInformation, "VL for Vinci, 02.2021"
End Sub 'V_Sub_Closed_File_Change
Sub V_Sub_File_Target_Open()
Workbooks.Open Filename:=VBA.Environ("USERPROFILE") & "\Desktop\File_Target.xls"
End Sub 'V_Sub_File_Target_Open
Sub V_Sub_Clear_closed_File_Target_xls()
Call V_Sub_File_Target_Clear(VBA.Environ("USERPROFILE") & "\Desktop\File_Target.xls")
End Sub 'V_Sub_Clear_closed_File_Target_xls
Sub V_Sub_File_Target_Clear(LSp_File_name As String)
Dim binaryStream As Object
With CreateObject("ADODB.Stream") 'End With 'With CreateObject("ADODB.Stream")
.Type = 2: .Charset = "utf-8": .Open
.WriteText ""
Set binaryStream = CreateObject("ADODB.Stream")
binaryStream.Type = 1: binaryStream.Mode = 3: binaryStream.Open
.Position = 3: .CopyTo binaryStream 'Skip BOM bytes
.flush: .Close
binaryStream.SaveToFile LSp_File_name, 2
binaryStream.Close
End With 'With CreateObject("ADODB.Stream")
MsgBox "File_Target.xls on the desktop successfully cleared", vbInformation, "VL for Vinci, 02.2021"
End Sub 'V_Sub_File_Target_Clear