VBA如果和多个语句
所以我试图确保所有的字段填写在我正在创build一个窗体,但是我有一些麻烦与多个if语句。
If Not IsEmpty(barcode) And Not IsEmpty(takenstock) And Not IsEmpty(staff) And Not IsEmpty(jobnumber) Then Sheet2.Cells(emptyrow, 1).Value = staff Sheet2.Cells(emptyrow, 2).Value = Product Sheet2.Cells(emptyrow, 3).Value = ProductCode Sheet2.Cells(emptyrow, 4).Value = takenstock Sheet2.Cells(emptyrow, 5).Value = jobnumber Sheet2.Cells(emptyrow, 6).Value = Mydate Sheet2.Cells(emptyrow, 7).Value = Mytime 'removes stock from list of products Sheets("List of products").Range(findproduct).Value = selectproduct - takenstock 'clears sheet Sheet1.Range("b1").Value = "" Sheet1.Range("b6").Value = "" Sheet1.Range("b5").Value = "" Sheet1.Range("b7").Value = "" Else MsgBox "Please fill Barcode, stock to be taken,staff field and the job number" & vbNewLine & "Thank you", vbOKOnly, "Missing fields" End If
这是我的第一次尝试,没有奏效,所以我试了一下
If Not IsEmpty(barcode) And Not IsEmpty(takenstock) Then if Not IsEmpty(staff) And Not IsEmpty(jobnumber) Then
我也尝试删除第二个不是
感觉像我已经尝试了一切,但代码只是不感兴趣
预先感谢您的帮助
尝试
If (Not IsEmpty(barcode)) And (Not IsEmpty(takenstock)) And (Not IsEmpty(staff)) And (Not IsEmpty(jobnumber)) Then
总是在更多的括号上犯错
此外,这取决于什么types的barcode
, takenstock
, staff
和工作jobnumber
。 我看不到你的声明。
如果你将它们声明为Range
,并将它们设置为类似的东西
set barcode = Range("B7")
或者这样的事情,你的代码应该可以正常工作。 但是,如果您将它们声明为String
或Integer
types并将其设置为
barcode = Range("B7").value
那么你的expression将总是评估FALSE
。 isEmpty()
仅用于对象,不是基本types。