Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Тип данных для TextBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Тип данных для TextBox (Макросы/Sub)
Тип данных для TextBox
t330 Дата: Вторник, 23.04.2019, 18:55 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Всем привет
Нахожусь на стадии написания простой учебной программки для расчета кредита. См вложенный файл (на листе Loan нужно нажать кнопку Test и затем "выход")
В коде есть событие изменения периода кредита (это текстовое поле с названием tbPeriod )
Нужно сделать так, чтобы поле конец кредита (tbEndPer) расчитывалось автоматом по формуле
tbEndPer = tbStarPer (это дата начала выплат) + tbPeriod (период кредита в годах)

Для этого в событие изменения поля tbPeriod , я вставил вот такую строку:
[vba]
Код

tbEndPer = CDate(DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value))
[/vba]

Полностью процедура события вот такая:

[vba]
Код

Private Sub tbPeriod_Change()
sbPeriod.Value = Val(tbPeriod.Value)
tbEndPer = CDate(DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value))
End Sub
[/vba]

Но VBA ругается и пишет Type mismatch 13

Подскажите пожалуйста почему ?

При этом, в процедуре иннициализации формы , есть точно такая же строка (самая последняя) и VBA на нее НЕ ругается....

[vba]
Код

Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim ThisYear As Integer
    Dim x As Object
    MultiPage1.Style = fmTabStyleNone
    MultiPage1.Value = 0
    Me.Caption = APPNAME & " - Шаг " & _
      MultiPage1.Value + 1 & " из " & _
      MultiPage1.Pages.Count
    tbRate.Value = 10
    tbLoan.Value = 10000
    tbPeriod.Value = 1
    tbStartPer = Date
    tbEndPer = DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value)
    
End Sub
[/vba]
К сообщению приложен файл: TestSB.xlsm (58.8 Kb)
 
Ответить
СообщениеВсем привет
Нахожусь на стадии написания простой учебной программки для расчета кредита. См вложенный файл (на листе Loan нужно нажать кнопку Test и затем "выход")
В коде есть событие изменения периода кредита (это текстовое поле с названием tbPeriod )
Нужно сделать так, чтобы поле конец кредита (tbEndPer) расчитывалось автоматом по формуле
tbEndPer = tbStarPer (это дата начала выплат) + tbPeriod (период кредита в годах)

Для этого в событие изменения поля tbPeriod , я вставил вот такую строку:
[vba]
Код

tbEndPer = CDate(DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value))
[/vba]

Полностью процедура события вот такая:

[vba]
Код

Private Sub tbPeriod_Change()
sbPeriod.Value = Val(tbPeriod.Value)
tbEndPer = CDate(DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value))
End Sub
[/vba]

Но VBA ругается и пишет Type mismatch 13

Подскажите пожалуйста почему ?

При этом, в процедуре иннициализации формы , есть точно такая же строка (самая последняя) и VBA на нее НЕ ругается....

[vba]
Код

Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim ThisYear As Integer
    Dim x As Object
    MultiPage1.Style = fmTabStyleNone
    MultiPage1.Value = 0
    Me.Caption = APPNAME & " - Шаг " & _
      MultiPage1.Value + 1 & " из " & _
      MultiPage1.Pages.Count
    tbRate.Value = 10
    tbLoan.Value = 10000
    tbPeriod.Value = 1
    tbStartPer = Date
    tbEndPer = DateAdd("yyyy", tbPeriod.Value, tbStartPer.Value)
    
End Sub
[/vba]

Автор - t330
Дата добавления - 23.04.2019 в 18:55
RAN Дата: Вторник, 23.04.2019, 19:32 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Потому, что на момент запуска
[vba]
Код
Private Sub tbPeriod_Change()
[/vba]
в
tbStartPer
пусто


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПотому, что на момент запуска
[vba]
Код
Private Sub tbPeriod_Change()
[/vba]
в
tbStartPer
пусто

Автор - RAN
Дата добавления - 23.04.2019 в 19:32
t330 Дата: Вторник, 23.04.2019, 22:08 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Спасибо
 
Ответить
СообщениеСпасибо

Автор - t330
Дата добавления - 23.04.2019 в 22:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Тип данных для TextBox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!