2
當循環條件包括F欄的整個範圍內的每個循環的條件下,該代碼工作得很好:對於造成類型不匹配
Dim ABnumb As String
Dim cellSkill As Range
Let ABnumb = dayWS.Cells(i1, 2).Value
For Each cellSkill In skillSheet.Range("F:F")
If cellSkill.Value = ABnumb Then
Let skillNumb = cellSkill.Offset(0, -5).Value
Let skillDelimited = skillDelimited & ";" & skillNumb
End If
Next cellSkill
但爲了提高效率,我想限制循環所使用的範圍。當我更改代碼這樣:
For Each cellSkill In skillSheet.UsedRange("F")
我得到一個類型不匹配錯誤,該表達式:
If cellSkill.Value = ABnumb Then
我打了改變兩個變量的聲明的數據類型,但是什麼都無助。
有沒有一種方法可以使用.UsedRange(「F」)?或者我應該訴諸.Range(1,lastRow),其中lastRow已由腳本確定?
另外,對於循環中的每個變量cellSkill會發生什麼?我可以在沒有問題的情況下將這個變量重用到另一個For Each循環中嗎?
使用Intersect產生相同類型的不匹配錯誤。但是,正如我所想,最後一行方法正常工作。 Intersect是否像你寫的那樣爲你工作?什麼可能是我的錯誤的原因? –
我在循環之前使用了'Debug.Print Intersect(skillSheet.Columns(「F」),skillSheet.UsedRange).Address'和循環內的'Debug.Print cellSkill.Address'。兩者都是正確的。 – Jeeped