Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Вопрос Добавлено: 24.04.08 16:02  

Автор вопроса:  Ig0r
Есть 12 tetxBox'oв и 12 spinButton'ов!!!как сделать(txt1.Value = 10) чтобы и во всех остальных txtBox'ах отсчёт начинался с 10 без повтора кода?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #1
Добавлено: 24.04.08 16:43
Непонял, нужно чтоб по любому из 12 Button_Click-oв во всех TextBox-ах выставлялся один и тотже текст?

А массивом объектов их можно сделать? Или те обязательно их поотдельности держать?

Ответить

Номер ответа: 2
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #2 Добавлено: 24.04.08 16:48
В каждом TextBox'e должно по умолчанию стоять 10 при нажатии на spinButton значение изменялось бы на 1(это я сделал)!!!Как обойтись без писания того самого кода txt1.Value = 10 и т.д.?

Ответить

Номер ответа: 3
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #3
Добавлено: 24.04.08 16:54
Скопируй оттуда и скинь сюда свой код, ато чёт я тебя непонял :)

Ответить

Номер ответа: 4
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #4 Добавлено: 24.04.08 17:01
Private Sub CommandButton1_Click()
Range("B4";) = txt1.Value
End Sub

Private Sub SpB1_Change()
txt1.Value = spb1.Value
End Sub

Private Sub txt1_Change()
spb1.Value = CLng(txt1.Value)
End Sub

Private Sub UserForm_Initialize()
txt1.Value = 10
End Sub

Это для одной кнопки...

Ответить

Номер ответа: 5
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #5
Добавлено: 24.04.08 19:57
1. Удали с формы 9 текстбоксов и баттонов, оставь Txt1 и CommandButton1
2. Выдели их мышкой, правой кнопкой щёлкни в меню Копировать.
3. Щёлкни на самой форме в меню Вставить.
4. Появится некий вопрос, жми ДА.
5. Повтори с 3-го пункта ещё 8 раз. Вопроса небудет.

Так ты создаш массив контролов Txt1(0-10) и CommandButton1(1-10). Так с ними можно работать перебирая индекс в цикле фор некст.

Пример только завтра щас ВБ под рукой нет.

Ответить

Номер ответа: 6
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #6 Добавлено: 24.04.08 19:59
Спасибо!!!Буду ждать пример!

Ответить

Номер ответа: 7
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #7
Добавлено: 24.04.08 20:36
Кстати 10 в текстбоксы можно назначить заранее, ещё в проекте.
Эт надо было делать ещё до копирования/вставки, такбы уже ксе контролы с 10-ми (по умолчанию) были а щас :(, щёлкаеш по боксу, в списке свойств выбираеш Техт и правее в строке вбиваеш 10. И так для каждого. Форма открывается с 10-ми в боксах.
Иль там в будущем не только десятки будут? тады остафь

Ответить

Номер ответа: 8
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #8
Добавлено: 24.04.08 21:25
опечатки

массив контролов Txt1(0-9) и CommandButton1(0-9).


такбы уже Все контролы с 10-ми


Старею, есть офис есть и ВБА, щас прикину пример, хотя удобнее былоб еслиб файл прислал на почту.

Ответить

Номер ответа: 9
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #9
Добавлено: 24.04.08 22:11
Вроде и знаю ВБА, но до сих пор незамечал что контролы там не индексируются сцуки.
Лажа с массивом контролов.

Ответить

Номер ответа: 10
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #10
Добавлено: 24.04.08 23:26
Private Sub UserForm_Initialize()
Dim tmpInt As Integer

With UserForm1.Controls
    For tmpInt = 0 To .Count - 1
        If InStr(.Item(tmpInt).Name, "Txt";) Then .Item(tmpInt) = 10
    Next
End With
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #11
Добавлено: 26.04.08 19:12
Господа интеллектуалы, сократите-ка этот код
сохраняя функц. и работоспос. естественно :)

ЭтаКнига(Код)
Private Sub Workbook_Activate()
UserForm1.Show
End Sub

UserForm1(Код)
Option Explicit

Private Sub CommandButton1_Click()
Cells(4, 2) = TextBox1
End Sub

Private Sub CommandButton2_Click()
Cells(5, 2) = TextBox2
End Sub

Private Sub CommandButton3_Click()
Cells(6, 2) = TextBox3
End Sub

Private Sub CommandButton4_Click()
Cells(7, 2) = TextBox4
End Sub

Private Sub CommandButton5_Click()
Cells(8, 2) = TextBox5
End Sub

Private Sub CommandButton6_Click()
Cells(9, 2) = TextBox6
End Sub

Private Sub CommandButton7_Click()
Cells(10, 2) = TextBox7
End Sub

Private Sub CommandButton8_Click()
Cells(11, 2) = TextBox8
End Sub

Private Sub CommandButton9_Click()
Cells(12, 2) = TextBox9
End Sub

Private Sub CommandButton10_Click()
Cells(13, 2) = TextBox10
End Sub

Private Sub SpinButton1_Change()
TextBox1 = SpinButton1
End Sub

Private Sub SpinButton2_Change()
TextBox2 = SpinButton2
End Sub

Private Sub SpinButton3_Change()
TextBox3 = SpinButton3
End Sub

Private Sub SpinButton4_Change()
TextBox4 = SpinButton4
End Sub

Private Sub SpinButton5_Change()
TextBox5 = SpinButton5
End Sub

Private Sub SpinButton6_Change()
TextBox6 = SpinButton6
End Sub

Private Sub SpinButton7_Change()
TextBox7 = SpinButton7
End Sub

Private Sub SpinButton8_Change()
TextBox8 = SpinButton8
End Sub

Private Sub SpinButton9_Change()
TextBox9 = SpinButton9
End Sub

Private Sub SpinButton10_Change()
TextBox10 = SpinButton10
End Sub

Private Sub TextBox1_Change()
SpinButton1 = TextBox1
End Sub

Private Sub TextBox2_Change()
SpinButton2 = TextBox2
End Sub

Private Sub TextBox3_Change()
SpinButton3 = TextBox3
End Sub

Private Sub TextBox4_Change()
SpinButton4 = TextBox4
End Sub

Private Sub TextBox5_Change()
SpinButton5 = TextBox5
End Sub

Private Sub TextBox6_Change()
SpinButton6 = TextBox6
End Sub

Private Sub TextBox7_Change()
SpinButton7 = TextBox7
End Sub

Private Sub TextBox8_Change()
SpinButton8 = TextBox8
End Sub

Private Sub TextBox9_Change()
SpinButton9 = TextBox9
End Sub

Private Sub TextBox10_Change()
SpinButton10 = TextBox10
End Sub

Private Sub UserForm_Initialize()
Dim tmpInt As Integer

With Controls
    For tmpInt = 0 To .Count - 1
        .Item(tmpInt) = 10
    Next
End With
End Sub

Ответить

Номер ответа: 12
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #12
Добавлено: 26.04.08 20:45
      Элементарно:

Private Sub CommandButton1_Click(): Cells(4, 2) = TextBox1: End Sub

Private Sub CommandButton2_Click(): Cells(5, 2) = TextBox2: End Sub


    И так далее ...
 

Ответить

Номер ответа: 13
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #13
Добавлено: 27.04.08 00:28
Ну и какое тут сокращение? Имелось в виду логическое сокращение, а не чтоб в окне меньше страниц занимало =)

Ответить

Номер ответа: 14
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #14
Добавлено: 27.04.08 00:43
    Каков вопрос — таков и ответ. Если нет массивов Conrol'ов — чего же можно ещё написать?

Ответить

Номер ответа: 15
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #15
Добавлено: 27.04.08 02:19
Без заморочек сократить, т.е. сделать короче.
Полезно иногда выгружать математику из кэша :)

Семёнов красиво придумал, вот уж сократил так сократил :)

Спасибо !!!

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам