|
|
|
| На форме 9 контролов
с именами
LV_AVTO_1
LV_AVTO_2
.......
как в цикле поработать по очереди со всеми контролами точнее
как сформировать имена, что бы компилятор понял...
Dim lvw As MSComctlLib.ListView
For F = 1 To 9
Set lvw = Me("LV_AVTO_" & str(F)) - ругается (типа не найден такой контрол.) | |
|
| |
|
|
|
| а так
Set lvw = Me("LV_AVTO_" & Trim(str(F)))
или просто
Set lvw = Me("LV_AVTO_" & F)
Синтаксис функции в VBA:
Str (Number)
Функция Str (Expression) возвращает значение Number, преобразованное в текстовый тип данных String.
При преобразовании в начале строки возвращаемого значения резервируется место для знака числа. Если число положительно, то в этом месте будет пробел, если число отрицательно, то выводится знак минус.
В качестве десятичного разделителя дроби функция Str воспринимает только точку. При использовании других десятичных разделителей (например, запятой) следует использовать функцию CStr
Параметры функции
Number — Любое выражение, которое можно записать в виде строки
Пример кода на языке программирования VBA (Visual Basic for Applications):
Dim retval
retval = Str (123)' получаем “ 123“
retval=Str (-12.3)' получаем “-12.3» | |
|
| |
|
|
|
| еще вариант
Set lvw = Me("LV_AVTO_" & Cstr(F)) | |
|
| |
|
|
|
| класс!!!
Вот этот вариант
Set lvw = Me("LV_AVTO_" & Cstr(F))
работает!!!
====================
Спасибо за помощь.
Ты стал спецом в этом деле!!! | |
|
| |
|
|
|
|
|
| me.controls("LV_AVTO_" & F) | |
|
| |
|
|
|
| Привет!!!
нисавсем..
================
Dim F As integer | |
|
| |
|
|
|
| Вот у меня работает уже 100 лет
Dim KolPrmZag As Long
For KolPrmZag = 1 To 4
Me.Controls("L" & KolPrmZag) = ...
Next KolPrmZag | |
|
| |
|
|
|
| 100 лет...
тада верю! | |
|
| |
|
|
|
| Пять копеек:
Если имя контрола с пробелами то в форме пишется Имя_Контрола_С_Пробелами_1
Но в конструкции с Ме - пишется: Me("Имя Контрола С Пробелами " & 1)
- - -
Пригодится воды напиться...
Поэтому часто пишу без подчерка: ИмяКонтролаБезПробелов :) | |
|
| |
|
|
|
|
СПАСИБО. | |
|
| |