Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/формат файла не соответствует расширению - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » формат файла не соответствует расширению
формат файла не соответствует расширению
Zoor Дата: Пятница, 10.03.2017, 00:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте. Для сохранения рабочей книги Excel используется следующий код:
[vba]
Код
Sub DiapazonSaveInXLFile()
    Dim iSource As Range, iFileName 'As Variant
   
    Set iSource = ActiveSheet.Range("d2:f100")
    
    With Application
         iFileName = .GetSaveAsFilename( _
         FileFilter:="Excel Files (*.CSV), *.CSV", _
         Title:="Введите имя файла")
         If iFileName <> False Then
            .ScreenUpdating = False
            .DisplayAlerts = False '
            With .Workbooks.Add(xlWBATWorksheet)
                 iSource.Copy Destination:=.Worksheets(1).Range("A1")
                 .Close Filename:=iFileName, saveChanges:=True
            End With
            .DisplayAlerts = True '
            .ScreenUpdating = True
         
         Else
         
            MsgBox "необходимо указать файл", , ""
         End If
    End With
End Sub
[/vba]

Я изменил формат файла на csv и при открытии Excel выдает сообщение "Действительный формат открываемого файла отличается от указываемого его расширением имени файла"
Как бы это поправить?

пардон. не ту ветку выбрал. перенесите пожалуйста


Сообщение отредактировал Zoor - Пятница, 10.03.2017, 00:24
 
Ответить
СообщениеЗдравствуйте. Для сохранения рабочей книги Excel используется следующий код:
[vba]
Код
Sub DiapazonSaveInXLFile()
    Dim iSource As Range, iFileName 'As Variant
   
    Set iSource = ActiveSheet.Range("d2:f100")
    
    With Application
         iFileName = .GetSaveAsFilename( _
         FileFilter:="Excel Files (*.CSV), *.CSV", _
         Title:="Введите имя файла")
         If iFileName <> False Then
            .ScreenUpdating = False
            .DisplayAlerts = False '
            With .Workbooks.Add(xlWBATWorksheet)
                 iSource.Copy Destination:=.Worksheets(1).Range("A1")
                 .Close Filename:=iFileName, saveChanges:=True
            End With
            .DisplayAlerts = True '
            .ScreenUpdating = True
         
         Else
         
            MsgBox "необходимо указать файл", , ""
         End If
    End With
End Sub
[/vba]

Я изменил формат файла на csv и при открытии Excel выдает сообщение "Действительный формат открываемого файла отличается от указываемого его расширением имени файла"
Как бы это поправить?

пардон. не ту ветку выбрал. перенесите пожалуйста

Автор - Zoor
Дата добавления - 10.03.2017 в 00:20
K-SerJC Дата: Пятница, 10.03.2017, 07:27 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
Я изменил формат файла на csv

а файл прицепить можете?


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
Я изменил формат файла на csv

а файл прицепить можете?

Автор - K-SerJC
Дата добавления - 10.03.2017 в 07:27
Zoor Дата: Пятница, 10.03.2017, 16:21 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
уточню. в макросе был изначально FileFilter:="Excel Files (*.xls)
К сообщению приложен файл: 11655-10.02.201.xlsm (43.3 Kb) · 111.csv (9.4 Kb)


Сообщение отредактировал Zoor - Пятница, 10.03.2017, 16:24
 
Ответить
Сообщениеуточню. в макросе был изначально FileFilter:="Excel Files (*.xls)

Автор - Zoor
Дата добавления - 10.03.2017 в 16:21
Матраскин Дата: Пятница, 10.03.2017, 16:56 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Zoor, лучше разобраться, что вам надо :Р

можно удалить весь ваш код и написать :

[vba]
Код
ActiveWorkbook.SaveAs Filename:= "D:test.csv", FileFormat :=xlCSVMSDOS, CreateBackup:=False
[/vba]

а потом пришить хвост


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Пятница, 10.03.2017, 16:57
 
Ответить
СообщениеZoor, лучше разобраться, что вам надо :Р

можно удалить весь ваш код и написать :

[vba]
Код
ActiveWorkbook.SaveAs Filename:= "D:test.csv", FileFormat :=xlCSVMSDOS, CreateBackup:=False
[/vba]

а потом пришить хвост

Автор - Матраскин
Дата добавления - 10.03.2017 в 16:56
Zoor Дата: Пятница, 10.03.2017, 17:04 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
мне нужен только выделенный диапазон. так то можно и кнопку сохранить найти
 
Ответить
Сообщениемне нужен только выделенный диапазон. так то можно и кнопку сохранить найти

Автор - Zoor
Дата добавления - 10.03.2017 в 17:04
Матраскин Дата: Пятница, 10.03.2017, 17:07 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Zoor,

[vba]
Код
Sub DiapazonSaveInXLFile()
    Dim iSource As Range, iFileName 'As Variant

    Set iSource = ActiveSheet.Range("d2:f100")
    
    With Application
        iFileName = .GetSaveAsFilename( _
        FileFilter:="Excel Files (*.CSV), *.CSV", _
        Title:="Введите имя файла")
        If iFileName <> False Then

           ActiveWorkbook.SaveAs Filename:= "D:test.csv", FileFormat :=xlCSVMSDOS, CreateBackup:=False

        Else
        
            MsgBox "необходимо указать файл", , ""
        End If
    End With
End Sub
[/vba]

вот такой хвост например) или любой другой
только файлнейм поменять на тот что задаёте

p.s. сейчас посмотрим что там за диапазон

вот готовые штуки для вас http://excelvba.ru/code/Range2CSV


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Пятница, 10.03.2017, 17:20
 
Ответить
СообщениеZoor,

[vba]
Код
Sub DiapazonSaveInXLFile()
    Dim iSource As Range, iFileName 'As Variant

    Set iSource = ActiveSheet.Range("d2:f100")
    
    With Application
        iFileName = .GetSaveAsFilename( _
        FileFilter:="Excel Files (*.CSV), *.CSV", _
        Title:="Введите имя файла")
        If iFileName <> False Then

           ActiveWorkbook.SaveAs Filename:= "D:test.csv", FileFormat :=xlCSVMSDOS, CreateBackup:=False

        Else
        
            MsgBox "необходимо указать файл", , ""
        End If
    End With
End Sub
[/vba]

вот такой хвост например) или любой другой
только файлнейм поменять на тот что задаёте

p.s. сейчас посмотрим что там за диапазон

вот готовые штуки для вас http://excelvba.ru/code/Range2CSV

Автор - Матраскин
Дата добавления - 10.03.2017 в 17:07
Zoor Дата: Пятница, 10.03.2017, 21:14 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
видел я эту штуку.
http://radikal.ru/lfp....htm

гдето видел похожее. исправлялось так If LCase$(Right$(Filename, 3)) = "csv" Then ft = xlExcel8 Else ft = xlOpenXMLWorkbook
но я с vba не дружу и простым копированием не помогает)


Сообщение отредактировал Zoor - Пятница, 10.03.2017, 21:22
 
Ответить
Сообщениевидел я эту штуку.
http://radikal.ru/lfp....htm

гдето видел похожее. исправлялось так If LCase$(Right$(Filename, 3)) = "csv" Then ft = xlExcel8 Else ft = xlOpenXMLWorkbook
но я с vba не дружу и простым копированием не помогает)

Автор - Zoor
Дата добавления - 10.03.2017 в 21:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » формат файла не соответствует расширению
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!