Я должен сохранить как файлы xlsx в формате html.Когда имя файла содержит специальные символы или буквы кириллицы, у меня возникает ошибка.
Как я могу экранировать эти специальные символы, чтобы файл, преобразующийся в .html, имел то же имя, что и исходные файлы xlsx с инструкцией VBA.
Когда я выполняю преобразование вручную, передав Excel, имя выходного файла (html) совпадает с именем файла xlsx.
Например, у меня есть имя файла xlsx
xzy1234567890!@నేనుÆды.test.ext.xlsx
после преобразования я хотел бы, чтобы имя было
xzy1234567890!@నేనుÆды.test.ext.htm
Это мой саб
Public Sub convertFile(ByRef arg As Variant)
On Error GoTo GestionErreurs
Dim repout, nameFile, reponse As String, wk As Workbook
Dim f As Variant
Dim Cell As Object
' display file running
display_running arg
repout = Range("output").Value
' if arg or repout are empty launch error message
If arg = "" Then
reponse = MsgBox("Please fill in a file to convert !", vbExclamation, "Error")
status = 0
Exit Sub
ElseIf repout = "" Then
reponse = MsgBox("Please enter a directory for the convert file !", vbExclamation, "Error")
status = 0
Exit Sub
End If
' check specials caracters
For Each Cell In Range("words")
If InStr(1, arg, Cell) > 0 Then
'replace
f = retFind(Cell, Range("spcarater"), 2)
arg = Replace(arg, Cell, f)
End If
Next Cell
' build path and name of him file
nameFile = repout & "\" & Mid(Dir(arg), 1, InStrRev(Dir(arg), ".") - 1) & ".htm"
nameFile = WorksheetFunction.EncodeURL(nameFile)
' open Xlsx files to convert
Workbooks.Open filename:=arg, ReadOnly:=True
'Workbooks(Dir(arg)).Activate
' copy the firt sheet in new woorbook
ActiveWorkbook.Sheets(1).Copy
' save as new wookbook in HTM format
ActiveWorkbook.SaveAs nameFile, xlHtml
' close all wookbooks
ActiveWorkbook.Close
'Workbooks(Dir(arg)).Activate
Workbooks(Dir(arg)).Close
' return staus 1 > OK
status = 1
Exit Sub
GestionErreurs:
hide_Running
MsgBox "A errur has occurred : " & Error & Chr(13) & "Conversion failure for the file: " & Chr(13) & arg, vbCritical
status = 0
End Sub