powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с операторами for......to....step
8 сообщений из 8, страница 1 из 1
работа с операторами for......to....step
    #36347199
lentay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброе время суток уважаемые программисты , я совсем недавно начал изучать 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
работа с операторами for......to....step
    #36347288
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че-то вы тут понакрутили.

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
работа с операторами for......to....step
    #36347293
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВопрос, собственно, а что требуется-то? Если не можете внятно выразить словами, то хотя бы приведите пример заполненной таблицы.

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

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

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

Код: 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
работа с операторами for......to....step
    #36349963
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lentayили просто закинуть в буфер обмена

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


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