我有一個數據要更改爲四列。它們是供應商代碼,每個都有特定的PIC,LS_Name,供應商代碼和組。我一直試圖寫一個IF語句來做同樣的事情,但我有一些不合適的地方。我的錯誤在哪裏?IF聲明更改代碼
Sub Change_Codes()
Dim Range As Range
Range = ("E2:E3000")
If Range = "MU999" Then Range = "R. Martinez"
End If
End Sub
我有一個數據要更改爲四列。它們是供應商代碼,每個都有特定的PIC,LS_Name,供應商代碼和組。我一直試圖寫一個IF語句來做同樣的事情,但我有一些不合適的地方。我的錯誤在哪裏?IF聲明更改代碼
Sub Change_Codes()
Dim Range As Range
Range = ("E2:E3000")
If Range = "MU999" Then Range = "R. Martinez"
End If
End Sub
我不知道你想達到什麼樣的,但是這是一個方式列E與R.馬丁內斯替換行2和3000中的文本MU999
Sub Main()
Dim c As Range
For Each c In Range("E2:E3000")
If StrComp(c, "MU999", vbTextCompare) = 0 Then
c = "R. Martinez"
End If
Next
End Sub
所以如果你有更多的條件,你可以使用If-else
或Select Case
如果 - 否則例
Sub Main()
Dim c As Range
For Each c In Range("E2:E3000")
If StrComp(c, "MU999", vbTextCompare) = 0 Then
c = "R. Martinez"
ElseIf StrComp(c, "MU111", vbTextCompare) = 0 Then
c = "replaced with M. Martinez"
ElseIf StrComp(c, "MU666", vbTextCompare) = 0 Then
c = "666 is not evil!"
End If
Next
End Sub
和Select case
Sub Main()
Dim c As Range
For Each c In Range("E2:E3000")
Select Case UCase(c)
Case "MU999"
c = "R. Martinez"
Case "MU111"
c = "replaced with M. Martinez"
Case "MU666"
c = "666 is not evil!"
End Select
Next
End Sub
(當字符串*不等於時,'StrComp'返回true。) – Chel
@rdhs哦,是的,忘了0 :) – 2013-11-21 16:21:38
Select Case的工作方式很神奇。非常感謝你!!! – autumntiger
是有你的代碼有問題嗎?什麼是實際問題?如果你問哪種方式更好的IF或Select案例,那麼你的問題就是脫離主題,因爲它主要是基於意見的。 – 2013-11-21 15:46:48
所以你想問問人們是否認爲'Case'好或者'If'?在這種情況下,這不是一個好問題,因爲SO不鼓勵提出意見的問題。也許可以改變它以問如何使用'Case'實現類似的結果? – Amber
謝謝;我編輯了這個問題。我希望這是更好的。 – autumntiger