【发布时间】:2017-06-01 22:51:27
【问题描述】:
当循环条件包括 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 已经由脚本确定?
另外,循环中的 For Each 变量 cellSkill 会发生什么?我可以在单元格范围内为另一个 For Each 循环重复使用此变量吗?
【问题讨论】: