Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с операторами for......to....step / 8 сообщений из 8, страница 1 из 1
03.12.2009, 22:45
    #36347199
lentay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
доброе время суток уважаемые программисты , я совсем недавно начал изучать VB6 и как у любого начинающего возникает уйма вопросов , но я сейчас пишу программу где расчитывается эффективность отебрения теплообменных аппаратов и конечные данные мне нужно свести в таблицу , для этого я воспользовался компонентом VB6 MSFlexGridControl принцип записи я понял но записывать в каждую ячейку черезчур муторно поэтому попробовал ввести через оператор For...To...Step... следующим образом (пример заролнения одного столбца)

For i=0 To 1200 Step 50
For j=1 To 24 Step 1
L=i
t1.cel=1
t1.row=j
t1.text=L
Next
Next

Проблема в следующем он считает сначало один цикл а потом вторй в итоге весь столбец заролнен 1-м значением 1200 ??
Возможно их запустить совместно чтоб один цикл указывал столбец и строку а второй вписываемую величену .
Заранее благодарен
...
Рейтинг: 0 / 0
04.12.2009, 00:16
    #36347288
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Че-то вы тут понакрутили.

1) t1.cel вы наверное имели ввиду t1.col

2) Внутренний цикл заполняет ПЕРВЫЙ столбец значением i. То есть он заполняет первый столбец сначала значением 0, потом значением 50 и так далее до 1200. Так как все происходит быстро, вы видите только последний прозход, а именно - столбец 1 заполнен значением 1200 (то есть последним значением i)
Вопрос, собственно, а что требуется-то? Если не можете внятно выразить словами, то хотя бы приведите пример заполненной таблицы.

3) Необязательно пользоваться для заполнения свойствами Row и Col. Можно использовать TextMatrix(i,j)=L - это будет ГОРАЗДО быстрее.

4) Также, на время работы цикла можно ставить Refresh=False - будет работать ЕЩЕ быстрее
...
Рейтинг: 0 / 0
04.12.2009, 00:23
    #36347293
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Shocker.ProВопрос, собственно, а что требуется-то? Если не можете внятно выразить словами, то хотя бы приведите пример заполненной таблицы.

Может вы хотели вот это?

Код: plaintext
1.
2.
For i= 0  To  24 
  t1.TextMatrix(i,  1 )=CStr(i* 50 )
Next
...
Рейтинг: 0 / 0
04.12.2009, 00:32
    #36347303
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Shocker.ProRefresh=False

сорри - Redraw=False
...
Рейтинг: 0 / 0
04.12.2009, 21:37
    #36349450
lentay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Shocker.Pro,
Спасибо огромное все получилось
еще маленьки вопрос возможно полученую таплитцу экпортировать в exel (или просто закинуть в буфер обмена )?
...
Рейтинг: 0 / 0
05.12.2009, 11:43
    #36349790
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Закуинуть в буфер обмена:

Код: plaintext
1.
  Clipboard.Clear
  Clipboard.SetText k

Желательно обрамлять On Error, так как в некоторых случаях может возникнуть ошибка

Закинуть буфер обмена в эксель:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Public Function CBToExcel() As Boolean

Dim e_app As Excel.Application
Dim e_sheet As Excel.Worksheet
CBToExcel = False
On Error Resume Next
Set e_app = GetObject(, "Excel.Application")
If Err <>  0  Then
  On Error GoTo ExErr
  Set e_app = New Excel.Application
End If
On Error GoTo ExErr
Set e_sheet = e_app.Workbooks.Add.Sheets( 1 )
'e_sheet.Paste
e_app.SendKeys "+{INSERT}"
e_app.Visible = True
e_sheet.Activate
Set e_sheet = Nothing
Set e_app = Nothing
CBToExcel = True
On Error GoTo  0 
Exit Function

ExErr:
MsgBox "Ошибка при запуске Excel" + vbCr + vbCr + Err.Description, vbCritical, "Запуск Excel"
On Error Resume Next
Set e_sheet = Nothing
Set e_app = Nothing
On Error GoTo  0 
Exit Function

End Function

Чтобы нормально распределилось по ячейкам, надо, чтобы столбцы были разделены vbTab, а строки vbCrLf.

Можно, конечно, перекинуть минуя буфер обмена, работая непосредственно с ячейками экселя.
...
Рейтинг: 0 / 0
05.12.2009, 16:10
    #36349963
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
lentayили просто закинуть в буфер обмена

Еще поглядите метод .Clip
...
Рейтинг: 0 / 0
07.12.2009, 00:24
    #36351013
lentay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с операторами for......to....step
Shocker.Pro,
Еще раз огромное спасибо , выручил !!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с операторами for......to....step / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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