Sub Macro5()
x = 2
s範圍e3 = Worksheets("速勢榜").Cells(3, 5) - 5
For Each s回圈範圍e In Worksheets("速勢榜").Range("e3:e16")
x = x + 1
If s回圈範圍e.Value < s範圍e3 Then
s較弱馬匹 = Cells(x, 2).Value
For Each s馬匹 In Worksheets("速勢榜").Range("cd6:cd45")
y = y + 1
If s馬匹.Value Like s較弱馬匹 Then
'為什麼這行總是無法執行...一直都沒有將字串"Times New Roman"給變數s馬匹
s馬匹.Value = "Times New Roman"
End If
Next s馬匹
End If
Next s回圈範圍e
End Sub
根據這裡的說明
Like是要Like「pattern」而不是like「值」
而光看程式碼的猜測
應該是拿兩個值去做比較
因而造成IF的判斷式不會成立
也就不會進入THEN之下的程式
謝謝....但我改為If s馬匹.Value Like TypeName(s較弱馬匹) Then都一樣不成立...真煩惱呵
應該也不是 TypeName
我提供的URL裡有一個例子
"[ABC大]" '名稱為A或B或C或大的工作表
表示是「A」或「B」或「C」或「大」四種值
所以你要提供的pattern
是類似
什麼字元開頭的
什麼字元結尾的
中間有幾個固定字元
....之類的
謝謝...但我改成Sub Macro4()
x = 2
s範圍e3 = Worksheets("速勢榜").Cells(3, 5) - 5 '用於比較的範圍再-5
For Each s回圈範圍e In Worksheets("速勢榜").Range("e3:e16") '在Range("e3:e14")內回圈
x = x + 1
If s回圈範圍e.Value < s範圍e3 Then '兩變數相同時Then
回圈範圍e = Cells(x, 2).Value
s較弱馬匹 = Cells(x, 2).Value
For Each s馬匹 In Worksheets("速勢榜").Range("cd6:cd45")
s馬匹 = s馬匹.Value
If s較弱馬匹 = s馬匹 Then
'我看見這裡兩個變數的型態和結果都是同一字串...但都不能執行Then..嗚嗚
Range("CD7").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Else
End If
Next s馬匹
End If
Next s回圈範圍e
End Sub
有沒有可能改用VLOOKUP函數?
或許可以達到你要的功能?
程式碼中用'中文'真的看不順眼..ㄎ0ㄎ~
anyway....你說
If s較弱馬匹 = s馬匹 Then
'我看見這裡兩個變數的型態和結果都是同一字串...但都不能執行Then..嗚嗚
那你有無去判斷'長度'是否一樣呢?
進入偵錯模式,再配合監看視窗,這樣也找不出為什麼嗎?
If s馬匹.Value Like s較弱馬匹 Then
'為什麼這行總是無法執行...一直都沒有將字串"Times New Roman"給變數s馬匹
s馬匹.Value = "Times New Roman"
End If
確定這是 VBA 不是 VAB 嗎?