powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / цикл для TextBox
14 сообщений из 14, страница 1 из 1
цикл для TextBox
    #34575213
NessO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как правильно записать цикл для TextBox?
На листе Excel создан бланк с текстом и рисунками. На рисунке расставлены 23 TextBox-а.
Нужно заполнить их данными из 2-х массивов. Вариант:

ActiveSheet.Shapes("Text Box 258").Select
Selection.Characters.Text = dan1(1) & "/" & dan2(1)

.. и т.д. – нормально работает, но как сделать цикл?
Нашла на вашем форуме подсказку и написала:

n = 0
For iCount = 257 To 279
ActiveSheet.Shapes("Text Box" & iCount).Value = dan1(n) & "/" & dan2(n)
n = n + 1
Next iCount

Выдает «Компонент с указанным именем не найден»
Подскажите, как это сделать.
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575307
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут рисунок?
имхо надо через Лист1.Textbox & iCount.value = <то что тебе надо>

ну а цикл вроде бы верный
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575372
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лист1.Textbox & iCount.value = <то что тебе надо>
Полную фигню написал. Она означает "значение_текстбокса & значение_счетчика = какое-то_еще_значение", то есть логическое выражение, уходящее в никуда.

Правильный цикл
Код: plaintext
1.
2.
3.
dim txt
For Each txt In ActiveSheet.Shapes
txt.value = ...
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575659
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NessO,
проверьте, что выражение "Text Box" & iCount формирует правильное имя объекта - судя по "Text Box 258" потерян пробел после Box.
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575700
NessO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и сделала. Выдает:"объект не поддерживает свойство или метод"
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575747
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NessO,
Как говорилось в известном анекдоте, "это уже второй вопрос".
Если хотите обращаться к родным свойствам внедрённых в лист OLE-объектов, используйте коллекцию OLEObjects:
Код: plaintext
1.
2.
3.
4.
5.
 Dim tb As MSForms.TextBox
 ...
 For iCount = ...
    Set tb = ActiveSheet.OLEObjects("Text Box " & iCount).Object
    tb.Value = ...
 Next iCount
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575774
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy Лист1.Textbox & iCount.value = <то что тебе надо>
Полную фигню написал. Она означает "значение_текстбокса & значение_счетчика = какое-то_еще_значение", то есть логическое выражение, уходящее в никуда.

Правильный цикл
Код: plaintext
1.
2.
3.
dim txt
For Each txt In ActiveSheet.Shapes
txt.value = ...


Выдает "Object doesn't suport this property or method"... И не сегрегирует техт боксы.
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575839
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктNessO,
Как говорилось в известном анекдоте, "это уже второй вопрос".
Если хотите обращаться к родным свойствам внедрённых в лист OLE-объектов, используйте коллекцию OLEObjects:
Код: plaintext
1.
2.
3.
4.
5.
 Dim tb As MSForms.TextBox
 ...
 For iCount = ...
    Set tb = ActiveSheet.OLEObjects("Text Box " & iCount).Object
    tb.Value = ...
 Next iCount


Выдает "Run time error 1004 Application defined or object defined error"
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575879
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn,
у меня не выдаёт.

На каком коде (я давал "рыбу")? На каком операторе? Как созданы/где находятся/в каком состоянии объекты? Что говорит отладка?
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575900
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim objShape As Shape

For Each objShape In ActiveSheet.Shapes
        If objShape.Type = msoTextBox Then
                objShape.TextFrame.Characters.Text = dan1( 1 ) & "/" & dan2( 1 )
        End If
Next
...
Рейтинг: 0 / 0
цикл для TextBox
    #34575919
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кстати. PA прав(-а) - есть ещё Excel.TextBox, может, я зря думаю на MSForms.TextBox.
...
Рейтинг: 0 / 0
цикл для TextBox
    #34576016
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктVladConn,
у меня не выдаёт.

На каком коде (я давал "рыбу")? На каком операторе? Как созданы/где находятся/в каком состоянии объекты? Что говорит отладка?

Бенедикт,

Я как раз уничтожил свой код перед тем как прочитать твой пост. И я буду уже, к сожалению, занят. Может позже. Но меня достало, что такая простая штука - и затыкается.
...
Рейтинг: 0 / 0
цикл для TextBox
    #34576084
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn,
нет проблем. По-видимому (автор говорит о рисунках, и имена с пробелами говорят о том же), речь о textbox-ах, которые shape-ы, а не внедрённые элементы управления (о которых подумал я).
Если так, пробуй код PA, или что-то типа
Код: plaintext
1.
2.
3.
4.
5.
 Dim tb As Excel.TextBox
 ...
 For iCount = ...
    Set tb = ActiveSheet.Shapes("Text Box " & iCount).OLEFormat.Object
    tb.Text = ...
 Next iCount
...
Рейтинг: 0 / 0
цикл для TextBox
    #34576752
NessO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бенедикт,
последний вариант работает, если еще добавить n=n+1, чтобы массив перебирало.

Dim tb As Excel.TextBox
For iCount = 257 To 279
Set tb = ActiveSheet.Shapes("Text Box " & iCount).OLEFormat.Object
tb.Text = dan1(n) & "/" & dan2(n)
n = n + 1
Next iCount

А Text Box-ы действительно находятся на рисунке, а тот на листе Excel.
Всем огромное СПАСИБО!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / цикл для TextBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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