Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2010, 16:39   #11
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не может быть.еще раз проверил,файл создается в папке с файлом.Я путь к вашей папке закоментил
Код:
Public Sub Example_Compas()
Dim sl As String, sl1 As String
    Dim myPath As String, myName As String
  '  myPath = "N:\_КЛИРИНГ\Лимиты\КОмпас\" 'Путь к файлу уберите апостроф и укажите правильный путь к папке для вывода файла
    myName = "Compas.dat"
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.07.2010, 18:09   #12
Zhiltsov
Пользователь
 
Аватар для Zhiltsov
 
Регистрация: 04.06.2009
Сообщений: 56
По умолчанию

Путь проверил, все верно, а файл не формируется.
Я тут кое что сам наваял, точнее слепил из образцов кода на этом форуме(спасибо форумчанам)
Сохраняется у меня файл по такому коду:
Sub SaveTXT()

Dim myPath As String, myName As String, myName1 As String, x As String, ts: Application.ScreenUpdating = False
myPath = "N:\_КЛИРИНГ\COMPAS+\DAT\" 'Ваш путь
myName = "ORS_limits_refresh" 'Ячека, содержащая имя файла
myName = myPath & myName & "_" & Format(Now, "yyyymmdd_hhmmss") & ".dat"
Sheets("ORS_limits_refresh").Activa te: Application.ScreenUpdating = False
ActiveSheet.Copy: ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.SaveAs Filename:=myName, FileFormat:=xlText: ActiveWorkbook.Close False
End Sub

Затем заменяются символы в последнем созданом файле в папке по такому коду:
Sub FindFiles()
'Имя файла
Dim sFileName As String
'Путь к папке с файлами
Dim sPath As String: sPath = "N:\_КЛИРИНГ\COMPAS+\DAT\"
'Маска для файлов
Dim sMask As String: sMask = "*.dat"
'Сообщение
Dim sMsg As String
Dim ar() As String
Dim x As String
Dim sName As String
Dim ts
ReDim ar(0)

sFileName = Dir(sPath & sMask)
Do While Len(sFileName) > 0
ar(UBound(ar)) = sFileName
sMsg = sMsg & sFileName & vbCrLf
sFileName = Dir
If Len(sFileName) <> 0 Then ReDim Preserve ar(UBound(ar) + 1)
Loop
'Сортировка методом пузырька
Dim i As Integer, j As Integer, sTmp As String
For i = 0 To UBound(ar)
For j = 0 To UBound(ar) - 1 - i
If FileDateTime(sPath & ar(j)) < FileDateTime(sPath & ar(j + 1)) Then
sTmp = ar(j)
ar(j) = ar(j + 1)
ar(j + 1) = sTmp
End If
Next j
Next i
sName = ar(j)
Set ts = CreateObject("Scripting.FileSystemO bject").OpenTextFile(sPath & sName, 1)
x = ts.ReadAll: x = Application.Trim(Replace(x, Chr(9), Chr(16))): ts.Close
Set ts = CreateObject("Scripting.FileSystemO bject").OpenTextFile(sPath & sName, 2, True)
ts.Write x: ts.Close

Set ts = CreateObject("Scripting.FileSystemO bject").OpenTextFile(sPath & sName, 1)
x = ts.ReadAll: x = Application.Trim(Replace(x, Chr(16) & Chr(13), Chr(10))): ts.Close
Set ts = CreateObject("Scripting.FileSystemO bject").OpenTextFile(sPath & sName, 2, True)
ts.Write x: ts.Close
End Sub

Так вот в строке выделенной жирным я хочу чтобы два символа Chr(16) & Chr(13) заменялись на один Chr(10) а получается что он каждый из символов заменяет(наверное синтаксис другой я не знаю как прописать) И ещё надо чтобы в конце файла тож ставился символ Chr(10), тож пока не соображу как сделать.
Zhiltsov вне форума Ответить с цитированием
Старый 07.07.2010, 18:38   #13
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Возможно я ошибаюсь,но простой заменой проблему не решить.Ваш файл будет отличаться от разработчиков.У них ячейки как бы по парам объеденены.вы обратили на это внимание.поэтому я файл формировал непосредственно с таблицы
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.07.2010, 09:27   #14
Zhiltsov
Пользователь
 
Аватар для Zhiltsov
 
Регистрация: 04.06.2009
Сообщений: 56
По умолчанию

хм, не формируется файл и все. Может быть причиной тому Office2007?
Zhiltsov вне форума Ответить с цитированием
Старый 08.07.2010, 11:08   #15
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Нет.У меня в 2003 и 2007 работает все правильно.Попробуйте по шагам посмотреть работу макроса.Чудес не бывает.Может не можете его найти-отправили в космос
Вложения
Тип файла: rar Compas.rar (203.3 Кб, 12 просмотров)
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 09.07.2010 в 10:44.
doober вне форума Ответить с цитированием
Старый 23.03.2015, 17:39   #16
alexandr7
 
Регистрация: 17.03.2015
Сообщений: 7
По умолчанию Выгрузка

Доброго времени суток, дорогие форумчане. Помогите чайнику. Как сделать так, чтобы из определённого листа книги конкретный диапазон ячеек записывался в текстовый файл. Спасибо всем, кто откликнется.
alexandr7 вне форума Ответить с цитированием
Старый 23.03.2015, 18:18   #17
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

передать в эту процедуру записываемый диапазон и имя файла, куда записать данные
Код:
Sub WriteRg2TXT(rg As Range, ByVal txt As String)
  Dim fso As Object, txtFL As Object, cell As Range
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set txtFL = fso.CreateTextFile(txt, True): txt = ""
  For Each cell In rg:  txt = txt & cell.Value:  Next
  txtFL.WriteLine txt:  txtFL.Close
End Sub

например 
Sub Test
  WriteRg2TXT [a2:b100], "c:\Textfile.txt"
end Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.03.2015, 20:05   #18
alexandr7
 
Регистрация: 17.03.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
передать в эту процедуру записываемый диапазон и имя файла, куда записать данные
Код:
Sub WriteRg2TXT(rg As Range, ByVal txt As String)
  Dim fso As Object, txtFL As Object, cell As Range
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set txtFL = fso.CreateTextFile(txt, True): txt = ""
  For Each cell In rg:  txt = txt & cell.Value:  Next
  txtFL.WriteLine txt:  txtFL.Close
End Sub

например 
Sub Test
  WriteRg2TXT [a2:b100], "c:\Textfile.txt"
end Sub
Большое спасибо, а как сделать так, чтобы старые записи в этом текстовом файле сохранялись, а новые добавлялись в конец. И если Вас не затруднить, как сделать так, чтобы этот макрос запускался автоматически при открытии этого листа, а не при нажатии кнопки. Большое спасибо Вам за помощь!
alexandr7 вне форума Ответить с цитированием
Старый 24.03.2015, 04:06   #19
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub WriteRg2TXT(rg As Range, ByVal txt As String)
  Dim fso As Object, txtFL As Object, cell As Range
  Set fso = CreateObject("Scripting.FileSystemObject")
  If Not fso.fileexists(txt) Then
    Set txtFL = fso.CreateTextFile(txt, True):  txtFL.Close
  End If
  Set txtFL = fso.OpenTextFile(txt, 8): txt = ""
  For Each cell In rg:  txt = txt & cell.Value:  Next
  txtFL.WriteLine txt:  txtFL.Close
End Sub
этот
Код:
Private Sub Worksheet_Activate()
  WriteRg2TXT [a1:b3], "c:\txtfl.txt"
End Sub
в модуль листа
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.03.2015, 13:44   #20
alexandr7
 
Регистрация: 17.03.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
Sub WriteRg2TXT(rg As Range, ByVal txt As String)
  Dim fso As Object, txtFL As Object, cell As Range
  Set fso = CreateObject("Scripting.FileSystemObject")
  If Not fso.fileexists(txt) Then
    Set txtFL = fso.CreateTextFile(txt, True):  txtFL.Close
  End If
  Set txtFL = fso.OpenTextFile(txt, 8): txt = ""
  For Each cell In rg:  txt = txt & cell.Value:  Next
  txtFL.WriteLine txt:  txtFL.Close
End Sub
этот
Код:
Private Sub Worksheet_Activate()
  WriteRg2TXT [a1:b3], "c:\txtfl.txt"
End Sub
в модуль листа
Извините за назойливость, но чё-то я ни как не могу вставить( Если поможете, буду очень признателен. Диапазон ячеек q10:t11,h19. И совсем было-бы здорово, если бы в текстовый файл вместе с экспортом добавлялось текущее время. Спасибо за вашу отзывчивость!
Вложения
Тип файла: rar уравнения 6 класс.rar (295.0 Кб, 8 просмотров)
alexandr7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как откомпилировать текстовый документ Vitalyir84 Общие вопросы Delphi 9 15.02.2010 23:07
имена файлов в текстовый документ Mobile™ Операционные системы общие вопросы 7 02.11.2009 23:41
Вставка картинок в текстовый документ PONKA Общие вопросы Delphi 0 04.02.2009 12:54
Как с помощью Delphi открыть/сохранить/удалить текстовый документ SeRhy Помощь студентам 4 02.11.2007 20:27
Ввод даты без разделителей (311007) avtor101 Microsoft Office Excel 1 31.10.2007 19:57