Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL-VBA-WriteLine-построчно / 12 сообщений из 12, страница 1 из 1
20.10.2004, 12:06
    #32746083
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Так я могу записать в файл только одну строку, а мне надо заполнять исходную таблицу построчно, как сделать так, чтобы и в файл заносилось построчно ??? Может вообще другой способ есть?



Private Sub CommandButton1_Click()
'------------------------------------------------
Dim m As String
Dim ord As Integer
'-------------------------------------
If Sheet1.Cells(3, 1) = 2 Then
m = "Un_Mash_2.ppd"
ElseIf Sheet1.Cells(3, 1) = 1.5 Then
m = "Un_Mash_1,5.ppd"
End If
'----------------------------------------
ord = Sheet1.Cells(5, 1)
'---------------------------
Set fs = CreateObject("Scripting.FileSystemObject")
'----------------------------------------------------
Set a = fs.CreateTextFile("c:\Documents and Settings\user33.USER33\Desktop\test.ppo", True)
'-------------------------------------------------------------------------------------------
a.WriteLine (Chr(34) & "Parametric \ masters \ Mash \" & m & Chr(34) & Chr(32) & Chr(34) _
& "C:\Metalix\P\ORDER\" & ord & Chr(92) & ord & Chr(34))
'--------------------------------------------------------------
a.Close
'---------

End Sub
...
Рейтинг: 0 / 0
20.10.2004, 12:40
    #32746193
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Уточните что вы хотите
Откуда и куда идут данные ?
Лист - Файл
Файл -Лист
...
Рейтинг: 0 / 0
20.10.2004, 13:18
    #32746303
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Sub PutDiags(msg As String,sPath as String)
    Dim fso As New Scripting.FileSystemObject
    Dim flErr As Scripting.File
    If Not fso.FileExists(sPath) Then
        fso.CreateTextFile sPath
        DoEvents
    End If
    Set flErr = fso.GetFile(sPath)
    Dim ts As Scripting.TextStream
    Set ts = flErr.OpenAsTextStream(ForAppending)
    ts.WriteLine msg
    ts.Close
    DoEvents
    Set ts = Nothing
    Set flErr = Nothing
    Set fso = Nothing
End Sub
...
Рейтинг: 0 / 0
20.10.2004, 16:38
    #32746847
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
To big_duke:
Лист - Файл(параметрические данные для CNC- "Parametric\masters\Door\Un_door_1,5.ppd" "C:\Metalix\P\ORDER\1" DoorType=1, LockType=1, AxisType=4, SizeY=800, SizeX=2000, , Side=R, Around=N, Win=500-одна строчка, следующая будет точно такая ,
но с другими значениями и т.д.)
я с заказа заношу данные в лист (20-30 строчек), получаю сводный рапорт
(5-6 строчек) и отсюда же хочу получить готовую работу (файл) для CNC !

Сейчас параметрические данные для CNC я ввожу вручную, я это лишнняя трата времени и дополнительные ошибки!
---------------------------------------------------------------------------
To Processor: Спасибо , я сегодня же попробую и сообщу!
...
Рейтинг: 0 / 0
20.10.2004, 23:07
    #32747429
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Работает как часы, но пришлось покопаться , не хватало выражения:

Const ForAppending = 8 , без этого не работало, но догнал!
-----------------------
Но теперь другая беда! Написал строку , надо нажать кнопку, еще строка, опять нажать кнопку и т. д. А хотелось бы написать сколько надо строк и нажать кнопку и все бы одновременно построчно расположились бы в файле ???????

Я уже пробовал копировать (Save As) с листа в файл сразу все строки! И все было хорошо, да лишние кавычки появляются, ""например так"" или там,
где их вообще в исходнике не было- в конце строк"!!!

Опыта у меня всего ничего, может кто подскажет, где копать, а уж я нарою!!!
...
Рейтинг: 0 / 0
21.10.2004, 14:24
    #32748525
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
vallotConst ForAppending = 8 , без этого не работало, но догнал!Бальзам...
Написал строку , надо нажать кнопку, еще строка, опять нажать кнопку и т. д. А хотелось бы написать сколько надо строк и нажать кнопку и все бы одновременно построчно расположились бы в файле ??????? А если на листе выделить все ячейки, содержимое которых надо отправить в файл, а затем нажать кнопку?
Обработчик CommandButton1_Click() программно должен пробежаться по выделенному диапазону и каждое знАчимое предложение отправлять в п/п PutDiags...
А?
...
Рейтинг: 0 / 0
21.10.2004, 16:22
    #32748817
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
'------------------------------------------
Private Sub CommandButton1_Click()
'------------------------------------------------
Const ForAppending = 8
Dim fso, f, v
Dim sPath As String
Dim msg As String
Dim m As String
Dim ord As Integer
Dim i As Integer
'================

For i = 2 To 10
--------------
'================
If Sheet1.Cells(i, 2) = 2 Then
m = "Un_Mash_2.ppd"
ElseIf Sheet1.Cells(i, 2) = 1.5 Then
m = "Un_Mash_1,5.ppd"
End If
'----------------------------------------
ord = Sheet1.Cells(i, 1)
'-------------------------------
sPath = "c:\Documents and Settings\user33.USER33\Desktop\vova.ppo"
msg = (Chr(34) & "Parametric \ masters \" & m & Chr(34) & Chr(32) & Chr(34) _
& "C:\Metalix\ORDER\" & ord & Chr(92) & ord & Chr(34))
'---------------------------
Set fso = CreateObject("Scripting.FileSystemObject")
'----------------------------------------------------
If Not fso.FileExists(sPath) Then
fso.CreateTextFile sPath
DoEvents
End If
Set f = fso.GetFile(sPath)
Set v = f.OpenAsTextStream(ForAppending)
v.WriteLine msg
v.Close
DoEvents
Set v = Nothing
Set f = Nothing
Set fso = Nothing
'========

Next i
------
'========
End Sub

=========================================================
Вот так дает как надо, но дает так же и пустые строки!!! :(
Например, если For i = 2 To 10 и заполнено в исходнике будет 5 строк,
то в файле будет так:

===========================================================
"Parametric \ masters \ Un_Mash_2.ppd" "C:\Metalix\ORDER\852\852"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\888\888"
"Parametric \ masters \ Un_Mash_2.ppd" "C:\Metalix\ORDER\777\777"
"Parametric \ masters \ Un_Mash_2.ppd" "C:\Metalix\ORDER\666\666"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\555\555"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\0\0"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\0\0"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\0\0"
"Parametric \ masters \ Un_Mash_1,5.ppd" "C:\Metalix\ORDER\0\0"
...
Рейтинг: 0 / 0
21.10.2004, 18:11
    #32749119
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Вижу, что надо бы мне сделать что то такое: посчитать заполненые строки в
исходнике и присвоить им значение переменой и тогда все решается !?
Но как подсчитать, кто знает??????
..............
...............
..............
Dim n As Integer

For i = 2 To 50
For j = 2 To 30
------------------------------
If Sheet1.Cells(i, j).Value <> 0 Then
...Row.Count -------------------------- как это записать правильно???
-------------------------------
End If

Next j
Next i
------------------------------
n = ...Row.Count------------------------- или чему равно???

======================
For i = 2 To n

и далее .....
...
Рейтинг: 0 / 0
21.10.2004, 20:11
    #32749313
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Да, книжек явно нехватает для самообразования. Или есть что-нибудь по VBA?
Придётся изучать его "по образцу".
0. Нажми поочерёдно Сервис-->Макрос-->Начать запись...-->ОК
1. Выдели диапазон ячеек, содержащих как текст, так и пустые строки.
2. Нажми поочерёдно "Данные"-->"Сортировка", а во всплывшем диалоговом окне "Сортировка диапазона" в разделе "Идентифицировать поля по" выбери соответствующую опцию.
3. В разделе "Сортировать по" выбери ту подпись (или столбец, если выделенный диапазон без шапки), которая обязательно должна быть заполнена: её пустые ячейки станут признаком отсева пустых строк.
Справа выбери опцию "по убыванию".
Нажми ОК.
Все непустые строки соберутся вверху.
Первая пустая ячейка послужит правилом остановки цикла записи в файл.
4. Останови запись макроса и посмотри код, который сделал Excel.
5. Измени константы на переменные; переменные инициализируй выше по тексту, и включи фрагмент в свой код.
...
Рейтинг: 0 / 0
21.10.2004, 21:13
    #32749361
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
Я помощь читаю , вот надыбал:
---------------------------------------
Dim areaCount, i
-----------------
If areaCount <= 1 Then
MsgBox "The selection contains " & _
Selection.Rows.Count & " rows." ---------------'это работает отлично
-------------------------------------------
Как мне обозначить "n"

n= ..... -------------------------------- чему равно????

For i = 2 To n

и т.д.
...
Рейтинг: 0 / 0
22.10.2004, 14:19
    #32750526
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
vallotКак мне обозначить "n"
n= ..... -------------------------------- чему равно????
Код: plaintext
n = Selection.Rows.Count
...
Рейтинг: 0 / 0
23.10.2004, 01:12
    #32751376
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL-VBA-WriteLine-построчно
А вот как просто все решилось, записать в файл из таблицы только заполненые строки!

'-----------------------------------
Set r = Range("A1:A50")
For i = 1 To r.Rows.Count
If Not r.Cells(i, 1) = Empty Then
...........................................
............................................ и т. д.

В итоге я имею программу, которая позволяет вводить не думая
в 1 таблицу ехселя на первом листе данные из заказа (например, двери: длина, ширина,какие петли, какой замок и т. д.) и нажимаю кнопку и все!!!
На выходе получаю более подробную отпечатаную сводную таблицу (с чертежами) для исполнителя заказа(цеха) и готовые параметрические програмы для CNC на весь заказ!!! (И освободившиесе время буду тратить
на самообразование по Ехсел_ВБА, ведь это была моя первая программа-так сказать - дебют)
Большое спасибо всем, кто откликнулся на мой зов о помощи!!!!
------------------------------------------
И особо to big_duke and to Processor!!!
---------------------------------------------
Надеюсь на вашу помощь и далее!
Уж очень хочется применить в этой программе базу данных, что бы можно было восстанавливать пройденные работы!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL-VBA-WriteLine-построчно / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]