Несоответствие типов в VBAUp VBA - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь использовать vlookup в форме для поиска значения текстового поля в таблице и помещаю результат во 2-е текстовое поле. Упрощенный код выглядит следующим образом:

Private Sub CommandButton1_Click()

Dim carbon As Variant
    carbon = TextBox1.Value
Dim ih As Variant

With ThisWorkbook.Worksheets("initial hardness")
    ih = Application.VLookup(carbon, Worksheets("initial hardness").Range("A4:B64"), 2, False)
    TextBox2.Value = ih
End With

End Sub

образец таблицы:

0,19  44,0
0,20  44,0
0,21  45,0
0,22  45,0
0,23  46,0

Когда я набираю 0,22 в tb1, я получаю ошибку времени выполнения '-2147352571 (800200005) ': Не удалось установить значение свойства. Форма, кажется, работает, когда я изменяю fomrat в первом столбце на 0.22, и набираю 0.22 в текстовом поле, но это не то, что я ищу.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 25 февраля 2020

Прежде всего, необходимо отметить блок «С» в вашем коде. Так что вы можете стереть это ..

Что касается вашей проблемы, то не ясно на 100%, что вы изменили. Поскольку проблемы могут быть разными, вы можете использовать региональные настройки, которые используют запятую "," или точку "." для разделения десятичных чисел или у вас могут возникнуть проблемы с форматом ячеек (текстовый или числовой формат)

. Я бы посоветовал избегать использования VLOOKUP в коде и попытаться использовать другой подход для решения проблемы.

Если Вы все еще хотите использовать VLOOKUP, «Application.VLookup» не будет работать во всех версиях Excel. Я бы предложил использовать «Application.WorksheetFunction.VLookup», если вы собираетесь использовать его на разных компьютерах.

...