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



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
EXCEL-VBA-WriteLine-построчно
    #32746193
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточните что вы хотите
Откуда и куда идут данные ?
Лист - Файл
Файл -Лист
...
Рейтинг: 0 / 0
EXCEL-VBA-WriteLine-построчно
    #32746303
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
EXCEL-VBA-WriteLine-построчно
    #32746847
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
EXCEL-VBA-WriteLine-построчно
    #32747429
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает как часы, но пришлось покопаться , не хватало выражения:

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

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

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

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

For i = 2 To n

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

'-----------------------------------
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
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL-VBA-WriteLine-построчно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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