Excel тупит или я?..

Программирование на Visual Basic for Applications
Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Excel тупит или я?..

Сообщение Alex@ndr » 28.10.2005 (Пт) 13:19

я понимаю что это тупо, но...

возьмём стандартную функцию из файла хелпа...
Код: Выделить всё
Open "TESTFILE" For Output As #1    ' Open file for output.
Write #1, "Hello World", 234    ' Write comma-delimited data.
Write #1,    ' Write blank line.

Dim MyBool, MyDate, MyNull, MyError
' Assign Boolean, Date, Null, and Error values.
MyBool = False: MyDate = #2/12/1969#: MyNull = Null
MyError = CVErr(32767)
' Boolean data is written as #TRUE# or #FALSE#. Date literals are
' written in universal date format, for example, #1994-07-13#
'represents July 13, 1994. Null data is written as #NULL#.
' Error data is written as #ERROR errorcode#.
Write #1, MyBool; " is a Boolean value"
Write #1, MyDate; " is a date"
Write #1, MyNull; " is a null value"
Write #1, MyError; " is an error value"
Close #1    ' Close file.

всё это сваливается с ошибкой... 54... бэд файл моде...
свой кусок делаю аналогично... и выходит так же... 54... бэд файл моде...

а задача банальная... в ексэле есть таблица... колонки 2,3,4 строки с 2 по ххх... заполненные данными не важно какими...

надо создать файл txt видом :
"содержимое ячейки [строка,2]" ; "содержимое ячейки [строка,3]" ; "содержимое ячейки [строка,4]"
"содержимое ячейки [строка+1,2]" ; "содержимое ячейки [строка+1,3]" ; "содержимое ячейки [строка+1,4]"
"содержимое ячейки [строка+2,2]" ; "содержимое ячейки [строка+2,3]" ; "содержимое ячейки [строка+2,4]"
"содержимое ячейки [строка+3,2]" ; "содержимое ячейки [строка+3,3]" ; "содержимое ячейки [строка+3,4]"
и т.д.

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 13:56

ошибку выкидывает в строке:
Write #1, "Hello World", 234 ' Write comma-delimited data.

и в моём коде тоже... в такой же строке сразу после
Open "TESTFILE" For Output As #1

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2005 (Пт) 14:04

Файловая система NTFS?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 14:10

угу

WinXP SP2 Офис2003

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2005 (Пт) 14:13

В Моих документах попробуй TESTFILE создать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 14:26

есть там файлик...

кстати может быть дополнительно...
надо тогда и создать файл...

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 14:31

вот собественно моя процедура...
Код: Выделить всё
Private Sub zSave_Click()
    Dim Indx, FileNumber
    FileNumber = FreeFile    ' Get unused file
    FileName = Excel.Application.ActiveWorkbook.Path & "\ABB-Oreder.txt"
    Open FileName For Output As #FileNumber    ' Create file name.

    Columns("C:C").Select
    Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

    For Indx = 2 To ActiveCell.Row
        Print #FileNumber, Cells(Indx, 2) & ";" & Cells(Indx, 3) & ";" & Cells(Indx, 4) ' Output text.
    Next Indx
    Close #FileNumber    ' Close file.
End Sub


сваливается в строке:
Код: Выделить всё
        Print #FileNumber, Cells(Indx, 2) & ";" & Cells(Indx, 3) & ";" & Cells(Indx, 4) ' Output text.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2005 (Пт) 14:46

Ладно, поставим вопрос по-другому...

У тебя есть разрешение на запись файлов в тот каталог, куда ты пытаешься их записывать?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 14:52

я администратор на компе... и файлик экселя лежит в "Мои Документы"... так что я думаю разрешение такое есть если не надо ещё каким-нибудь образом давать програмно

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 14:59

и эксель и текстстовый файлы лежат в одном и том же месте

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.10.2005 (Пт) 15:33

Вопрос в несколько другом русле: а зачем вообще это делать? Экселевские файлы можно сохранять в .csv формате через ThisWorkbook.SaveAs format:=xlCSV
Быть... или не быть. Вот. В чём вопрос?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2005 (Пт) 15:41

Эксель делает это очень своеобразно.
Иногда ставит запятую как разделитель, иногда - текущий национальный сепаратор, причём никогда не знаешь, что он выберет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.10.2005 (Пт) 15:41

:D

Клево, не знал.
Быть... или не быть. Вот. В чём вопрос?

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 15:44

в том то и дело что он всякий раз на разных машинах под разными версиями офиса это делает по разному сохранение CSV...

поэтому надо я думаю сделать рукописную функцию...

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 15:49

вот собственно приложение которое я делаю...

посмотрите код... что требуется я думаю уже понятно...
Вложения
file.zip
вот архив с файлом
(62.69 Кб) Скачиваний: 53

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 16:03

я не прошу вас сделать файлик... скажите хотябы что не так...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.10.2005 (Пт) 16:32

У меня все работает. Excel 2003, Win 2000 Professional, система NTFS.
Быть... или не быть. Вот. В чём вопрос?

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 28.10.2005 (Пт) 16:57

т.е. мой файлик работает?...

млин... а что сделать чтобы работал у всех стопудово?...
вон сразу ведь у меня хп сп2 с офисом 2003... и не работает :(

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 28.10.2005 (Пт) 17:32

У меня тоже все ок.
Ексел 2000

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 31.10.2005 (Пн) 11:33

ещё раз поясните плиз... мой архив что я выложил у всех работает?...

или нет?... если нет... то может подскажете варианты решения проблемы...

Alex@ndr
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.10.2005 (Пт) 12:57

Сообщение Alex@ndr » 31.10.2005 (Пн) 14:32

всем спасибо...

самое странное что на моей машинке не работает, а на машине которой предстоит работать с этим файлом всё чики-чики...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

    TopList