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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.01.2009, 17:15   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
ввод данных со 2 строки
Нет. Обрабатываются все строки, в ячейках которых есть (или раньше были) данные.
То есть в своём файле выделяете диапазон ячеек с данными, создаёте новый лист, вставляете данные, начиная с 1-й ячейки любой строки, и запускаете макрос.

Остальные ячейки (до и после вставленного диапазона) нельзя изменять или форматировать, иначе они тоже начнут участвовать в обработке.

Если бы Вы послушали меня, и прикрепили бы к сообщению пример своего файла, - то работало бы всё без подобных нюансов...

Цитата:
кол-во людей неограниченно?
Ограничений нет. Есть лишь разумные пределы...
Можно добавить на лист 1 000 000 строк, вот только дождётесь ли Вы окончания обработки...

Код я не оптимизировал, поэтому возможны тормоза при количестве записей более 1000.
EducatedFool вне форума
Старый 24.01.2009, 17:23   #12
mistx
Форумчанин
 
Регистрация: 30.09.2008
Сообщений: 104
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Код я не оптимизировал, поэтому возможны тормоза при количестве записей более 1000.
пойду переваривать код. Очень уж хотелось врубиться до самого конца.

Спасибо огромное за помощь. Жму руку.
mistx вне форума
Старый 27.01.2009, 11:03   #13
ocean_regata
Пользователь
 
Аватар для ocean_regata
 
Регистрация: 27.01.2009
Сообщений: 22
Радость

Помогите плиз сохранить строку в Экселе в *.тхт
Код EducatedFool-а посмотрел, подходит вроде, но закончить не получается...

S = .Cells(1) & sep & .Cells(2) & sep & .Cells(3) & sep & .Cells(4) & sep & .Cells(5) & sep & .Cells(6) & sep & .Cells(7) & sep & f & sep & f & sep & .Cells(1) & sep & .Cells(11) & sep & .Cells(12) & sep


заранее спасибо!

Последний раз редактировалось ocean_regata; 27.01.2009 в 14:16.
ocean_regata вне форума
Старый 27.01.2009, 12:44   #14
ocean_regata
Пользователь
 
Аватар для ocean_regata
 
Регистрация: 27.01.2009
Сообщений: 22
Хорошо

вcем привет!

Последний раз редактировалось ocean_regata; 27.01.2009 в 13:15.
ocean_regata вне форума
Старый 27.01.2009, 13:29   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Выделите любую ячейку на строке, из которой нужно сформировать файл и запустите макрос "InTxt". Текстовый файл с Вашими требованиями будет сформирован в той же директории, где находится эта книга.
Вложения
Тип файла: rar Заявка_2.rar (12.6 Кб, 18 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 27.01.2009, 13:45   #16
ocean_regata
Пользователь
 
Аватар для ocean_regata
 
Регистрация: 27.01.2009
Сообщений: 22
Хорошо

Большое спасибо, SAS888!

я наверно не оч подробно описал...сорри

Последний раз редактировалось ocean_regata; 27.01.2009 в 14:18.
ocean_regata вне форума
Старый 27.01.2009, 13:52   #17
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В коде макроса замените Chr(47) На Chr(124).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 27.01.2009, 14:10   #18
ocean_regata
Пользователь
 
Аватар для ocean_regata
 
Регистрация: 27.01.2009
Сообщений: 22
Хорошо

Ура, заработало!!!

SAS888! БОЛЬШУЩЕЕ Вам спасибо! спасибо! спасибо!

Последний раз редактировалось ocean_regata; 27.01.2009 в 14:17.
ocean_regata вне форума
Старый 28.01.2009, 05:46   #19
ocean_regata
Пользователь
 
Аватар для ocean_regata
 
Регистрация: 27.01.2009
Сообщений: 22
По умолчанию

Добре утречко! Кодоискатели!!!

не сочтите за наглость, но у меня еще вопросик:
'***************************
Sub hochu_txt()

Dim i As Long, j As Integer, Msg As String
i = ActiveCell.Row

For j = 1 To 10
Select Case j
Case 8
On Error Resume Next
MyStr = Chr(124) & Chr(124) & Right(Cells(i, 1), Len(Cells(i, 1)) - 4)
On Error GoTo 0
Case 9: MyStr = Cells(i, 11)
Case 10: MyStr = Cells(i, 12) & Chr(124)
Case Else: MyStr = Cells(i, j)
End Select
Msg = Msg & MyStr & Chr(124)
Next
Msg = Left(Msg, Len(Msg) - 1)

FileTxt = ThisWorkbook.Path & "\" & Cells(i, 4) & ".txt"
Open FileTxt For Output As #1
Print #1, Msg
Close #1

End Sub
'***************************

можно ли добавить, ш0бы в текстовом файле символы даты разделялись не точкой а слэшем "/" ???
если это не слишком усложнит код, напишите пожалуйста...как это сделать?!
ocean_regata вне форума
Старый 28.01.2009, 06:19   #20
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно. Проверяем: если текущая ячейка содержит дату - вызываем функцию преобразования этой даты в текстовую переменную с добавлением требуемых разделителей.
Код:
Sub hochu_txt()
    Dim i As Long, j As Integer, Msg As String, MyStr
    i = ActiveCell.row
    For j = 1 To 12
        Select Case j
        Case 8
            On Error Resume Next
            MyStr = Right(Cells(i, 1), Len(Cells(i, 1)) - 4)
            On Error GoTo 0
        Case 9: MyStr = Cells(i, 11)
        Case 10: MyStr = Cells(i, 12)
        Case Else: MyStr = Cells(i, j)
        End Select
        If IsDate(MyStr) Then MyStr = Date2Txt(MyStr)
        Msg = Msg & MyStr & Chr(124)
    Next
    Msg = Left(Msg, Len(Msg) - 1)
    
    FileTxt = ThisWorkbook.Path & "\" & Cells(i, 4) & ".txt"
    Open FileTxt For Output As #1
    Print #1, Msg
    Close #1
End Sub

Function Date2Txt(MyStr)
    Dim dt As String, a
    dt = CStr(Day(MyStr) & "/" & Month(MyStr) & "/" & Year(MyStr))
    On Error Resume Next
    a = Split(dt, "/")
    If Len(a(0)) = 1 Then dt = "0" & dt
    If Len(a(1)) = 1 Then dt = a(0) & "/" & "0" & a(1) & "/" & a(2)
    If Len(a(2)) = 1 Then dt = dt & "0"
    On Error GoTo 0
    Date2Txt = dt
End Function
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация в игре axumac Свободное общение 3 22.01.2009 20:37
Функции Ексел в Дэлфи 4321 Общие вопросы Delphi 12 08.11.2008 11:56
автоматизация в столовой Egavga Microsoft Office Excel 1 15.07.2008 14:02
Автоматизация юр фирмы NeZамужем Помощь студентам 1 27.03.2008 01:30
Как прочесть txt файл www.site.ru/info.txt BR17UY Работа с сетью в Delphi 1 16.04.2007 13:01