|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Так я могу записать в файл только одну строку, а мне надо заполнять исходную таблицу построчно, как сделать так, чтобы и в файл заносилось построчно ??? Может вообще другой способ есть? 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2004, 12:06 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Уточните что вы хотите Откуда и куда идут данные ? Лист - Файл Файл -Лист ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2004, 12:40 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2004, 13:18 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
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: Спасибо , я сегодня же попробую и сообщу! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2004, 16:38 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Работает как часы, но пришлось покопаться , не хватало выражения: Const ForAppending = 8 , без этого не работало, но догнал! ----------------------- Но теперь другая беда! Написал строку , надо нажать кнопку, еще строка, опять нажать кнопку и т. д. А хотелось бы написать сколько надо строк и нажать кнопку и все бы одновременно построчно расположились бы в файле ??????? Я уже пробовал копировать (Save As) с листа в файл сразу все строки! И все было хорошо, да лишние кавычки появляются, ""например так"" или там, где их вообще в исходнике не было- в конце строк"!!! Опыта у меня всего ничего, может кто подскажет, где копать, а уж я нарою!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2004, 23:07 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
vallotConst ForAppending = 8 , без этого не работало, но догнал!Бальзам... Написал строку , надо нажать кнопку, еще строка, опять нажать кнопку и т. д. А хотелось бы написать сколько надо строк и нажать кнопку и все бы одновременно построчно расположились бы в файле ??????? А если на листе выделить все ячейки, содержимое которых надо отправить в файл, а затем нажать кнопку? Обработчик CommandButton1_Click() программно должен пробежаться по выделенному диапазону и каждое знАчимое предложение отправлять в п/п PutDiags... А? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2004, 14:24 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
'------------------------------------------ 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" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2004, 16:22 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Вижу, что надо бы мне сделать что то такое: посчитать заполненые строки в исходнике и присвоить им значение переменой и тогда все решается !? Но как подсчитать, кто знает?????? .............. ............... .............. 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 и далее ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2004, 18:11 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Да, книжек явно нехватает для самообразования. Или есть что-нибудь по VBA? Придётся изучать его "по образцу". 0. Нажми поочерёдно Сервис-->Макрос-->Начать запись...-->ОК 1. Выдели диапазон ячеек, содержащих как текст, так и пустые строки. 2. Нажми поочерёдно "Данные"-->"Сортировка", а во всплывшем диалоговом окне "Сортировка диапазона" в разделе "Идентифицировать поля по" выбери соответствующую опцию. 3. В разделе "Сортировать по" выбери ту подпись (или столбец, если выделенный диапазон без шапки), которая обязательно должна быть заполнена: её пустые ячейки станут признаком отсева пустых строк. Справа выбери опцию "по убыванию". Нажми ОК. Все непустые строки соберутся вверху. Первая пустая ячейка послужит правилом остановки цикла записи в файл. 4. Останови запись макроса и посмотри код, который сделал Excel. 5. Измени константы на переменные; переменные инициализируй выше по тексту, и включи фрагмент в свой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2004, 20:11 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
Я помощь читаю , вот надыбал: --------------------------------------- Dim areaCount, i ----------------- If areaCount <= 1 Then MsgBox "The selection contains " & _ Selection.Rows.Count & " rows." ---------------'это работает отлично ------------------------------------------- Как мне обозначить "n" n= ..... -------------------------------- чему равно???? For i = 2 To n и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2004, 21:13 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
vallotКак мне обозначить "n" n= ..... -------------------------------- чему равно???? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2004, 14:19 |
|
EXCEL-VBA-WriteLine-построчно
|
|||
---|---|---|---|
#18+
А вот как просто все решилось, записать в файл из таблицы только заполненые строки! '----------------------------------- 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!!! --------------------------------------------- Надеюсь на вашу помощь и далее! Уж очень хочется применить в этой программе базу данных, что бы можно было восстанавливать пройденные работы! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2004, 01:12 |
|
|
start [/forum/search_topic.php?author=%D1%82%D1%80%D0%BE%D0%BB%D0%BE%D0%BB%D0%BE_12345&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
126ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 750ms |
total: | 1002ms |
0 / 0 |