【发布时间】:2013-09-12 08:25:35
【问题描述】:
好吧,我在一分钟前解决了一个小问题,但现在我的宏上有另一个问题:(
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim S1 As String, S2 As String
Dim S3 As String, S4 As String
Dim lRow As Long, i As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
S1 = "Football"
S2 = "Basket"
S3 = "Sport1"
S4 = "Sport2"
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 1 To lRow
If Len(Trim(.Range("E" & i).Value)) = 0 Then
Select Case .Range("C" & i).Value
Case S1, S2
MsgBox "Insert value in the cell " & _
.Range("E" & i).Address
Cancel = True
Exit For
End Select
End If
If (Len(Trim(.Range("F" & i).Value)) = 0) Or _
(Len(Trim(.Range("G" & i).Value)) = 0) Or _
(Len(Trim(.Range("H" & i).Value)) = 0) Then
Select Case .Range("C" & i).Value
Case S3, S4
MsgBox "Insert value in the cell " & _
.Range("F" & i).Address, _
.Range("G" & i).Address, _
.Range("H" & i).Address
Cancel = True
Exit For
End Select
End If
Next i
End With
End Sub
第一个 if 有效,但第二个
If (Len(Trim(.Range("F" & i).Value)) = 0) Or _
(Len(Trim(.Range("G" & i).Value)) = 0) Or _
(Len(Trim(.Range("H" & i).Value)) = 0) Then
Select Case .Range("C" & i).Value
Case S3, S4
MsgBox "Insert value in the cell " & _
.Range("F" & i).Address, _
.Range("G" & i).Address, _
.Range("H" & i).Address
Cancel = True
Exit For
End Select
End If
不。有什么不对?
如您所见,条件相同,但在不同的列中
【问题讨论】:
-
我觉得,我浪费了我的时间为你的previous question提供详细的答案:)
-
这个任务我在你回答我之前就打开了:(你的回答在另一个任务中很完美。
-
如果您将这些建议应用于此代码并更新您的问题,我愿意为您提供帮助。
-
我已经编辑了我的任务..我之前错了..我有不同的专栏。但条件是一样的。我不知道现在出了什么问题。
标签: excel if-statement excel-2010 vba