我在访问中有一个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是一个字符串)。
我甚至做了相反的事情,它再次返回False:
Var1IF = True
Var1 = Sheet1.Cells(95, 80).Value
If Var1 <> "" Then
Var1IF = False
End If
编辑:声明:
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")
答案 0 :(得分:0)
Set Sheet1 = oXLApp.Sheets("Sheet1")
你不应该先打开工作簿吗?你确定Sheet1实际上是指什么吗?
无论如何,请尝试以下代码:
Var1 = Sheet1.Cells(95, 80).Value
Debug.Print "Value: <" & Var1 & ">"
If Var1 = "" Then
Debug.Print "Var1 is empty string"
End If
If Var1 <> "" Then
Debug.Print "Var1 is NOT empty string"
End If
并检查立即窗口。如果你得到两个&#34; Var1&#34;我会很惊讶调试行。
答案 1 :(得分:0)
这太荒谬了。从excel获取后,我将数据从Var1保存到另一个变量,问题解决了。我检查了大约10次,它只是做了工作,而以前的方式没有。