Добрый. В курилке я описал проект, но видимо никому кроме меня пока он не нужен))) Курилка
Я почти реализовал задуманное, осталось подправить сохранение. Т.к. че то ниче не выходит. тем похожих вроде бы много, но как то сложна и запутанно.
Суть: требуесся сохранить лист 1( или содержимое ячейки А1) как текст в кодировке ANSI , хоть куды, дело 10е, но т.к. хороший тон описывать что требуется на выходе, то по хорошему сразу во временную папку винды
, , к чему это? Тут конкретный вопрос, сохранить в кодировке такой то, текст из ячейки такой то.
Там просто обсуждение, в т.ч. если добрые люди скажут, нафига тебе эксель, в вба есть такие то волшебные строчки, делай батник и будет тебе счастье... Ну или еще чего.
А может кто задаст мне вопрос вообще не потеме, на то она и курилка... А это запрещено? Я же не дублировал темы...
Sub Test()
Dim blResult As Boolean
blResult = SaveTextToFile(Range("A1"), "C:\Temp\test.txt", "ANSI")
End Sub
Function SaveTextToFile(ByVal txt$, ByVal filename$, Optional ByVal encoding$ = "windows-1251") As Boolean
'https://excelvba.ru/code/SaveTextToFile
' функция сохраняет текст txt в кодировке Charset$ в файл filename$
Dim FSO As Object, ts As Object, binaryStream As Object
On Error Resume Next
Err.Clear
Select Case encoding$
Case "windows-1251", "", "ANSI"
Set FSO = CreateObject("scripting.filesystemobject")
Set ts = FSO.CreateTextFile(filename, True)
ts.Write txt: ts.Close
Set ts = Nothing: Set FSO = Nothing
Case "utf-16", "utf-16LE"
Set FSO = CreateObject("scripting.filesystemobject")
Set ts = FSO.CreateTextFile(filename, True, True)
ts.Write txt: ts.Close
Set ts = Nothing: Set FSO = Nothing
Case "utf-8noBOM"
With CreateObject("ADODB.Stream")
.Type = 2: .Charset = "utf-8": .Open
.WriteText txt$
Set binaryStream = CreateObject("ADODB.Stream")
binaryStream.Type = 1: binaryStream.Mode = 3: binaryStream.Open
.Position = 3: .CopyTo binaryStream 'Skip BOM bytes
.flush: .Close
binaryStream.SaveToFile filename$, 2
binaryStream.Close
End With
Case Else
With CreateObject("ADODB.Stream")
.Type = 2: .Charset = encoding$: .Open
.WriteText txt$
.SaveToFile filename$, 2 ' сохраняем файл в заданной кодировке
.Close
End With
End Select
SaveTextToFile = Err = 0
DoEvents
End Function
к тому, что фактически Вы создали две одинаковые темы, чего делать не следовало. Если поняли, что разместили первую тему не там, то нужно было попросить модераторов перенести тему в общий форум. А Вы теперь начинаете искать оправдания. Впредь не делайте так.