Страницы: 1
RSS
Возникает ошибка при получении данных из ячейки с формулой в Textbox
 
Всем доброго дня! Уважаемые знатоки Excel, строго не судите, это мой первый проект. Задача большая и это не большой вопрос в этой задаче, на который я не смог найти ответ. Необходимо с помощью Textbox1 в форме ввести данные в одну ячейку (А1) и получить данные в Textbox2 из другой ячейки (С1), которая содержит формулу. При удалении данных из Textbox1 возникает ошибка "Run-time error '13': Type mismatch". Без формулы все ОК.
 
Ну а на Ваш взгляд что должна посчитать формула, если там пусто?
Изменено: skais675 - 05.03.2019 10:57:11
 
Если вызвать форму и внести данные в Textbox1, то в ячейки А1 появятся данные. Или я что-то не так понял?
Изменено: Alexey74 - 05.03.2019 11:00:43
 
Сделайте проверку значения textbox1
Если значение "", то 0
 
Что-то быстро не соображу как это правильно сделать.
 
Цитата
Если вызвать форму и внести данные в Textbox1, то в ячейки А1 появятся данные. Или я что-то не так понял?
Речь идет о том, что после этого ячейка B1 дает ошибку так как пусто+20 невозможно выполнить. Ну соответственно и Textbox2 дает ошибку так как операция невыполнима.
Либо формулу правьте либо в Textbox ставьте проверку или исключение.
Изменено: skais675 - 05.03.2019 11:11:52
 
Код
Private Sub TextBox1_Change()
    Worksheets("Лист1").Range("A1").Value = TextBox1
    If TextBox1.Value = "" Then TextBox1.Value = 0
       
    TextBox2.Text = Worksheets("Лист1").Range("C1").Value
End Sub
 
Код
Private Sub TextBox1_Change()
    If Len(TextBox1.Value) > 0 Then Worksheets("Лист1").[A1] = TextBox1 Else _
        Worksheets("Лист1").Range("A1").Value = 0
    TextBox2.Text = Worksheets("Лист1").[C1].Value
End Sub
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
magistor8 написал:
Код ? 123456Private Sub TextBox1_Change()    Worksheets("Лист1").Range("A1").Value = TextBox1    If TextBox1.Value = "" Then TextBox1.Value = 0            TextBox2.Text = Worksheets("Лист1").Range("C1").ValueEnd Sub
Спасибо огромное. В этом файле работает так как надо, а в проекте, что-то не хочет. Выдает туже ошибку. Может ошибка возникает из-за того, что в проекте ячейка, от куда берется информация остается не пустая, а с #Н/Д. То-есть пока не ввели данные в Textbox1, данные не найдены и соответственно в ячейке #Н/Д. Сейчас попробую это исправить.
 
Либо так
Код
Private Sub TextBox1_Change()
    Worksheets("Лист1").Range("A1").Value = Val(TextBox1.Value)
    TextBox2.Text = Worksheets("Лист1").Range("C1").Value
End Sub
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
Код ? 12345Private Sub TextBox1_Change()    If Len(TextBox1.Value) > 0 Then Worksheets("Лист1").[A1] = TextBox1 Else _        Worksheets("Лист1").Range("A1").Value = 0    TextBox2.Text = Worksheets("Лист1").[C1].ValueEnd Sub
Супер. Спасибо. Только код в проекте у меня работает без этой строчки: Worksheets("Лист1").Range("A1").Value = 0 с ней не хочет. Всем большое спасибо.
 
Цитата
Nordheim написал:
Код ? 1234Private Sub TextBox1_Change()    Worksheets("Лист1").Range("A1").Value = Val(TextBox1.Value)    TextBox2.Text = Worksheets("Лист1").Range("C1").ValueEnd Sub
И этот вариант не хочет работать.
Страницы: 1
Наверх