Страницы: 1
RSS
Как сохранить через диалоговое окно "Сохранить как" чтобы csv файл имел разделитель запятую, а не точку с запятой?
 
Здравствуйте

Помогите пожалуйста разобраться:
Я импортирую из csv файла где разделители запятые  (Данные -- Из Текста -- Импорт текстового файла ) данные на лист Excel ,
а затем когда сохраняю как csv (разделители запятые), то он сохраняеться с разделителями точка с запятой хотя в
"Параметры Excel-Дополнительно-Использовать системные разделители-Разделитель целой и дробной части" стоит запятая- тестировал с и без галочки - "Использовать системный разделитель".
Если сохранять макросом тогда будет запятая разделителем, но мне надо иметь возможноть вручную сохранять используя диалоговое окно "Сохранить как" и чтоб в csv был разделить запятая,
а не точка с запятой.
Как сохранить руками чтобы csv имел разделитель запятую?
 
ScreenMenuExcel
 
пробуйте:
в региональных настройках указать разделитель запятая, сохранить файл, вернуть разделитель как было (и проверить что получилось))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Screen Региональных стандартов После перезагрузки компьютера и Excel данные изменения ни к чему не привели.
Я там где надо менял?
 
seregasss435,да, там. Разделитель элементов запятая. Разделитель целой точка (не должен оставаться запятой)
БЕз перезапусков нормально (у меня во всяком случае, даже эксель не перезапускал), поменяли - применить - сохранили файл - вернули как было ;)
Изменено: andylu - 01.10.2021 16:41:14
 
andylu, Спасибо . Работает как надо
 
Возможно ли автоматом из кода vba менять значения "Региональных стандартов" и потом возвращать обратно?
Если нет можно было бы создать исполнительный файл, который будет производить изменение параметров и вызываться будут из того кода vba.
 
может оказаьтся, что правильнее  после сохранения сделать замены уже в результирующем файле. так как замена региональных может сказаться на работе чего либо другого. А так в реестре подправить значения
Computer\HKEY_CURRENT_USER\Control Panel\International
sDecimal
sList
но есть проблема, системе надо перечитать их и если реньше можно было просто через shell это сделать, то сейчас это не так и если через интерфейс после смены разделителей, это запустится автоматом, то просто смена значений , не поимеет результата.
По вопросам из тем форума, личку не читаю.
 
Лучше не менять региональные настройки вообще.
Код
' Сохраняет активную книгу как CSV. Разделитель полей - запятая.
Sub SaveAsCsv()
  Dim fName, iName, i As Long
  iName = ActiveWorkbook.Name
  i = InStrRev(iName, ".")
  If i > 0 Then iName = Left(iName, i - 1)
  fName = Application.GetSaveAsFilename(iName, fileFilter:="Csv Files (*.csv), *.csv")
  If fName <> False Then
     On Error Resume Next
     ActiveWorkbook.SaveAs fName, FileFormat:=xlCSV, local:=False
     On Error GoTo 0
  End If
End Sub
Владимир
 
БМВ, Спасибо
 

Ігор Гончаренко, СПАСИБО

sokol92,Спасибо, данный код работает.

При выше изложенных обстаятельствах я прихожу к выводу, что код vba я оставляю в покое и в случае необходимости в ручном режиме необходимо будет просто переключаться в региональных стандартах.

Всем большое спасибо за участие .

Страницы: 1
Читают тему (гостей: 1)
Наверх