powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComboBox
19 сообщений из 19, страница 1 из 1
ComboBox
    #39073363
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ComboBox1.Name = "Combo" & Str(1)

выдает ошибку, почему?
...
Рейтинг: 0 / 0
ComboBox
    #39073369
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что свойство Name является ReadOnly и именно это написано в тексте ошибки, не?
...
Рейтинг: 0 / 0
ComboBox
    #39073418
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Phoenix204
Для начала неплохо было бы узнать: о какой IDE идет речь?
...
Рейтинг: 0 / 0
ComboBox
    #39073652
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDE: 2010 вордовский VBA 7.0

Не ReadOnly, так как
ComboBox1.Name = "Combo" работает, переименовывает имя комбобокса. А вот когда справа составной строковый параметр не работает, не понятно почему...

Вообще суть задачи намного глубже:
при определенных условиях значения CheckBox формируется таблица, в полях которых кодом же вставляются ComboBox-ы, заказчик желает, чтобы при заполнении первой строки таблицы автоматически появлялась следующая строка и так далее, решил отталкиваться от процедуры ComboBox_Change(), так как к изменению обычного поля таблицы не оттолкнуться (не продумано если честно, сам я не VBAшник, 1С-ник). Проблема встала такая так как количество строк неихвестно, нужно чтобы при появлении новой строки с комбобоксами, имена этих боксов были уникальны, пытался вот так:

Private Sub ComboBox1_Change()
ThisDocument.Tables(2).Rows(3).Select
Selection.InsertRowsBelow 1
Set o_1 = Selection.Cells(3).Range.InlineShapes.AddOLEControl(ClassType:="Forms.ComboBox.1")
o_1.Width = 72.65
o_1.Height = 15.65
o_1.OLEFormat.Object.ListWidth = 400
o_1.OLEFormat.Object.AddItem "1. ................"
.........................................................................
o_1.OLEFormat.Object.AddItem "23. ............."
o_1.OLEFormat.Object.Name = "Combo"
End Sub

Sub Combo_Change()
Randomize (100)
Dim k As
k = Rnd(100)
Combo.Name = "Combo" & Str(k)
Call ComboBox3_Change
End Sub

не работает, не работает даже то, что я вам написал в первом сообщении, а так ComboBox1.Name = "Combo" работает...
по логике должно работать, если с рандомами где то не то написал, можете подправить, буду благодарен, пока до них не добирался, написал с головы, что помнил с универа еще.
...
Рейтинг: 0 / 0
ComboBox
    #39073653
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пардон
dim k as integer
...
Рейтинг: 0 / 0
ComboBox
    #39073656
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Phoenix204IDE: 2010 вордовский VBA 7.0то есть мы должны были догадаться тами, так?Phoenix204ComboBox1.Name = "Combo" работает, переименовывает имя комбобокса. А вот когда справа составной строковый параметр не работает, не понятно почему...Ну а прочитать тем не менее текст ошибки никак? Или посмотреть, что именно присваиваешь. Пробовать не стал, но, видимо, пробелы недопустимы в имени контрола
...
Рейтинг: 0 / 0
ComboBox
    #39073657
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и будьте любезны оформлять свой код Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
ComboBox
    #39073660
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уникальность имен комбобоксов требуется так как в противном случае ошибки, я думаю это понятно.
...
Рейтинг: 0 / 0
ComboBox
    #39073666
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз - попробуйте имя без пробела.
...
Рейтинг: 0 / 0
ComboBox
    #39073667
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините. буду учитывать правила
Ну так пробелов и нет, в общем то..

Вот изображение с ошибкой
...
Рейтинг: 0 / 0
ComboBox
    #39073668
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
ComboBox
    #39073671
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это же всего лишь конкатенация строк, тем более vba автоматически ставит пробелы в этой строке даже если я удаляю пробелы.
...
Рейтинг: 0 / 0
ComboBox
    #39073683
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да реально присваивается с пробелом, почему не подскажете:
"Combo" & Str(1) где тут пробел?
...
Рейтинг: 0 / 0
ComboBox
    #39073692
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем хелп по функциям Str и CStr
...
Рейтинг: 0 / 0
ComboBox
    #39073693
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы, разобрался, странная функция Str() добавляет пробел перед числом
...
Рейтинг: 0 / 0
ComboBox
    #39073694
Str,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Phoenix204Да реально присваивается с пробелом, почему не подскажете:
"Combo" & Str(1) где тут пробел?Str первый символ под знак отводит, и "+" - не пишет, - вот тебе и пробел

или CStr используй, или просто "Combo" & k
...
Рейтинг: 0 / 0
ComboBox
    #39073695
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ясно) спасибо большое)
...
Рейтинг: 0 / 0
ComboBox
    #39073696
Фотография i45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Phoenix204,

У Вас имя процедуры Combo_Change.
Внутри Вы и обращаетесь к объекту по имени Combo: Combo.Name
Т.е. он У вас уже имеет имя Combo?
И Вы его хотите переименовать кодом? Combo.Name = "Combo" & Str(k)
По-видимому, это нельзя делать, потому-что, как указал Shocker.Pro, оно Read Only? И наверно поэтому ComboBox1.Name = "Combo" проходит, ведь изменения имени не происходит.

Зы: Это размышления, может быть и неправ, не настаиваю.
...
Рейтинг: 0 / 0
ComboBox
    #39073697
Phoenix204
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет, все замечательно меняет) все получилось)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComboBox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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