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

выдает ошибку, почему?
...
Рейтинг: 0 / 0
09.10.2015, 23:58
    #39073369
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Потому что свойство Name является ReadOnly и именно это написано в тексте ошибки, не?
...
Рейтинг: 0 / 0
10.10.2015, 08:53
    #39073418
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Phoenix204
Для начала неплохо было бы узнать: о какой IDE идет речь?
...
Рейтинг: 0 / 0
10.10.2015, 20:59
    #39073652
Phoenix204
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
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
10.10.2015, 21:00
    #39073653
Phoenix204
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
пардон
dim k as integer
...
Рейтинг: 0 / 0
10.10.2015, 21:03
    #39073656
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Phoenix204IDE: 2010 вордовский VBA 7.0то есть мы должны были догадаться тами, так?Phoenix204ComboBox1.Name = "Combo" работает, переименовывает имя комбобокса. А вот когда справа составной строковый параметр не работает, не понятно почему...Ну а прочитать тем не менее текст ошибки никак? Или посмотреть, что именно присваиваешь. Пробовать не стал, но, видимо, пробелы недопустимы в имени контрола
...
Рейтинг: 0 / 0
10.10.2015, 21:05
    #39073657
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
и будьте любезны оформлять свой код Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
10.10.2015, 21:08
    #39073660
Phoenix204
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Уникальность имен комбобоксов требуется так как в противном случае ошибки, я думаю это понятно.
...
Рейтинг: 0 / 0
10.10.2015, 21:16
    #39073666
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Еще раз - попробуйте имя без пробела.
...
Рейтинг: 0 / 0
10.10.2015, 21:17
    #39073667
Phoenix204
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox
Извините. буду учитывать правила
Ну так пробелов и нет, в общем то..

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

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

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

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


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