У меня есть код vba в доступе, который получает данные с страницы excel и передает ее в excel через переменные с помощью кнопки в форме доступа. Если некоторые запрошенные данные не находятся в файле excel, я хочу, чтобы он показывал msgbox, показывающий, какие данные не были переданы. Для этого я использую логические переменные и «IF». Я проверяю, является ли переменная с сохраненными данными из excel пустым.Проверка того, что строка пуста, не работает
Var1IF = True
Var1 = Sheet1.Cells(95, 80).Value
If Var1 = "" Then
Var1IF = False
End If
Независимо от того, что я делаю Var1IF всегда возвращается как False. Даже если у Var1 есть данные в нем или нет (поскольку ячейки из excel могут иметь как числа, так и буквы, Var1 является строкой).
Я даже сделал противоположное, и он снова вернулся Ложные:
Var1IF = True
Var1 = Sheet1.Cells(95, 80).Value
If Var1 <> "" Then
Var1IF = False
End If
Edit: Объявления:
Dim oXLApp As Object, wb As Object
Dim Sheet1 As Object
Dim Var1 as String
Dim Var1IF as Boolean
Set oXLApp = GetObject(, "Excel.Application")
Set Sheet1 = oXLApp.Sheets("Sheet1")
'var1' - это просто не пустая строка; что делает 'debug.print Sheet1.Cells (95, 80) .Value, len (Sheet1.Cells (95, 80) .Value)' show? (ctrl + g, чтобы увидеть вывод) –
Он печатает значение этой ячейки. Я знаю, что var1 - это просто не пустая строка. Тогда почему Var1IF возвращает False, так как условие IF не проходит? По какой-то причине в моем коде Var1 = "" и Var1 <> "" всегда правильно. –
У меня такое чувство, что мы не видим полной картины. Пожалуйста, добавьте свои объявления переменных в код (какие типы данных являются Var1, Sheet1?) – Andre