我正在使用下面的代码在一个过滤的列中循环,并在循环时收集销售人员的每个姓名;我正在使用SpecialCells(xlCellTypeVisible),它仅拾取可见行。我只想要一次名称,所以我正在使用countif工作表功能。一旦有了名称,就将其存储在临时变量(namelist_tmp)中并添加分号。最终的结果是创建一个变量(名称列表),每个名称之间用分号分隔,因此我可以在我拥有的某些电子邮件代码的.to部分中使用它。
我可以遍历并捕获名称,但是当我尝试将temp变量分配给最终变量时,我在namelist_tmp代码上收到运行时错误5无效的过程调用或参数:
namelist = Left(namelist_tmp, Len(namelist_tmp) - 2)
我不确定我是否会按照正确的方式做事,善良的灵魂能帮助我看到自己的错误吗?
Sub filteredstuff()
Dim lastRow As Long, myrange As Range
lastRow = Cells(Rows.Count, 2).End(xlUp).Row
For Each myrange In Range("E11:E" & lastRow).SpecialCells(xlCellTypeVisible)
'At each name, use COUNTIF to look upwards and see if the name already exists.
'If not, add name, semi-colon and space to temporary name list
If WorksheetFunction.CountIf(Range("E11:E" & myrange.Row), _
Range("E" & myrange.Row)) < 2 Then
namelist_tmp = namelist_tmp & Range("E" & myrange.Row).Value & "; "
End If
'Strip last semi-colon & space off of temp list
namelist = Left(namelist_tmp, Len(namelist_tmp) - 2)
Next myrange
MsgBox namelist
End Sub
答案 0 :(得分:0)
我已经在虚拟数据上运行了您的代码,对我来说,它可以正常工作,但没有任何错误。 这行很完美,应该没问题:
namelist = Left(namelist_tmp, Len(namelist_tmp) - 2)
您能提供更多细节吗?