![](/img/trans.png)
[英]Cells.SpecialCells(xlCellTypeVisible).Copy slow in loop
[英]VBA merging autofiltered cells via .SpecialCells(xlCellTypeVisible).Range
我有一个我的用户已经采取的课程列表,我想添加他们拥有的车辆的访问权限,以及公司是否已激活他们的徽章以使用车辆(叉车等)。 所以我想为用户合并所有类的行,然后只有一个居中的答案。 当我逐步完成它看起来工作但最终结果是整个数据列被合并。 我的问题是语法是否错误,还是我尝试执行Excel 2013中无法完成的操作。
我正在使用的代码:
With Range("A1:K" & LastRow)
For i = 1 To UBound(FleetID, 1)
.AutoFilter Field:=5, Criteria1:=FleetID(i)
LastFilteredRow = .SpecialCells(xlCellTypeVisible).Cells(Rows.Count, "A").End(xlUp).Row
If LastFilteredRow > 1 Then
With .SpecialCells(xlCellTypeVisible).Range("R2:R" & LastFilteredRow)
.Select
.Merge
If FleetClass(i) = "Operator" Then .Value = "Standard" Else .Value = FleetClass(i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With 'std
With .SpecialCells(xlCellTypeVisible).Range("S2:S" & LastFilteredRow)
.Select
.Merge
.Value = FleetAct(i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With ' ' active
End If
Next i
.Columns("A:U").AutoFit
.Columns("E").ColumnWidth = 11
.Columns("H:I").ColumnWidth = 11
.Columns("N:N").ColumnWidth = 2
End With 'Range("A1:K" & LastRow)
我的结果如下
我想通了这个代码我有2个错误。 第一个错误是我的范围不正确,虽然它似乎没有打破合并,但确实打破了我后来添加的代码。 我在特殊细胞之后使用了Range,所以将细胞从片材的开头合并到我的可见细胞的末端而不是合并我的范围内的可见细胞所需的代码因此
With Range("A1:T" & LastRow)
For i = 1 To UBound(FleetID, 1)
.AutoFilter Field:=5, Criteria1:=FleetID(i)
LastFilteredRow = .SpecialCells(xlCellTypeVisible).Cells(Rows.Count, "A").End(xlUp).Row
If LastFilteredRow > 1 Then
With .Range("R2:R" & LastFilteredRow).SpecialCells(xlCellTypeVisible)
.Merge
If FleetClass(i) = "Operator" Then .Value = "Standard" Else .Value = FleetClass(i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With 'std
With .Range("S2:S" & LastFilteredRow).SpecialCells(xlCellTypeVisible)
.Merge
.Value = FleetAct(i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With ' ' active
End If
Next i
.Columns("A:U").AutoFit
.Columns("E").ColumnWidth = 11
.Columns("H:I").ColumnWidth = 11
.Columns("N:N").ColumnWidth = 2
End With 'Range("A1:T" & LastRow)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.