|
ComboBox
|
|||
---|---|---|---|
#18+
ComboBox1.Name = "Combo" & Str(1) выдает ошибку, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2015, 23:42 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Потому что свойство Name является ReadOnly и именно это написано в тексте ошибки, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2015, 23:58 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Phoenix204 Для начала неплохо было бы узнать: о какой IDE идет речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 08:53 |
|
ComboBox
|
|||
---|---|---|---|
#18+
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" работает... по логике должно работать, если с рандомами где то не то написал, можете подправить, буду благодарен, пока до них не добирался, написал с головы, что помнил с универа еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 20:59 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Phoenix204IDE: 2010 вордовский VBA 7.0то есть мы должны были догадаться тами, так?Phoenix204ComboBox1.Name = "Combo" работает, переименовывает имя комбобокса. А вот когда справа составной строковый параметр не работает, не понятно почему...Ну а прочитать тем не менее текст ошибки никак? Или посмотреть, что именно присваиваешь. Пробовать не стал, но, видимо, пробелы недопустимы в имени контрола ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:03 |
|
ComboBox
|
|||
---|---|---|---|
#18+
и будьте любезны оформлять свой код Как мне оформить свое сообщение? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:05 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Уникальность имен комбобоксов требуется так как в противном случае ошибки, я думаю это понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:08 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Еще раз - попробуйте имя без пробела. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:16 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Извините. буду учитывать правила Ну так пробелов и нет, в общем то.. Вот изображение с ошибкой ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:17 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Это же всего лишь конкатенация строк, тем более vba автоматически ставит пробелы в этой строке даже если я удаляю пробелы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:21 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Да реально присваивается с пробелом, почему не подскажете: "Combo" & Str(1) где тут пробел? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:34 |
|
ComboBox
|
|||
---|---|---|---|
#18+
читаем хелп по функциям Str и CStr ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:51 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Спасибо за советы, разобрался, странная функция Str() добавляет пробел перед числом ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:53 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Phoenix204Да реально присваивается с пробелом, почему не подскажете: "Combo" & Str(1) где тут пробел?Str первый символ под знак отводит, и "+" - не пишет, - вот тебе и пробел или CStr используй, или просто "Combo" & k ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:53 |
|
ComboBox
|
|||
---|---|---|---|
#18+
Phoenix204, У Вас имя процедуры Combo_Change. Внутри Вы и обращаетесь к объекту по имени Combo: Combo.Name Т.е. он У вас уже имеет имя Combo? И Вы его хотите переименовать кодом? Combo.Name = "Combo" & Str(k) По-видимому, это нельзя делать, потому-что, как указал Shocker.Pro, оно Read Only? И наверно поэтому ComboBox1.Name = "Combo" проходит, ведь изменения имени не происходит. Зы: Это размышления, может быть и неправ, не настаиваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 21:56 |
|
|
start [/forum/search_topic.php?author=Besson&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 305ms |
total: | 478ms |
0 / 0 |