|
本帖最後由 cool_fan 於 2019-11-28 16:46 編輯
老師您好,
想請教下邏輯語法問題:
構思:
1. 假設 (1) 輸入inputbox 值為空白,則為msgbox(“空”) (ex:輸入空白)
(2) 輸入inputbox 值不為空,但輸入的值(inputbox)不在搜尋範圍內, 則Msgbox(“搜尋時間不在範圍”)
(ex:假設inputbox輸入10:19:58,但搜尋範圍內裡面沒有此時間)
(3) else inputbox 不為空且搜尋時間有被找到,則 msgbox(“輸入時間的值”),程式執行下去
2. 是否可以針對特定某一行去做搜尋 (ex:假設搜尋範圍為B40列到B100列->B40:B100)
問題如下:
Q1: 目前遇到問題是 inputbox輸入空白,沒有沒有進入 (1) msgbox(“空”) //是不是無法對輸入空白東西做判斷? | Q2: 假設我今天輸入值為123 , 應該進入 (2) =>Msgbox(“搜尋時間不在範圍”) ,不過沒有進入(2),卻進入(3) |
代碼如下:
Sub search_test()
Range("B2").Select
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Add Key:=Range("B2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("工作表1").Sort
.SetRange Range("B2:B10000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'輸入第一個值
x1 = InputBox("請輸入時間")
'尋找第一個值
x2 = Cells.Find(What:=x1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
Select Case x1
'假設輸入值為空
Case Is = ""
MsgBox ("輸入時間為空")
' '輸入值與資料搜尋範圍內時間不符
Case x1 <> x2
MsgBox ("不在此時間範圍,請輸入正確時間")
Case Else
' '顯示時間值,程式繼續執行下去
MsgBox (x1)
End Select
End Sub
|
|