Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 复制不填充条件格式列的单元格_Excel_Vba_Conditional Formatting - Fatal编程技术网

Excel 复制不填充条件格式列的单元格

Excel 复制不填充条件格式列的单元格,excel,vba,conditional-formatting,Excel,Vba,Conditional Formatting,我正在尝试创建一个VBA宏,用于搜索条件格式列中的填充单元格,并仅选择包含数据但未被条件格式(无填充颜色)填充为红色的单元格 然后,一旦选择了没有填充的单元格,我想将它们复制到另一列的底部。我一直在选择我范围内的未填充单元格 Sub PM2_COPY() Sheets("M&C").Select range("A2").Select range(selection, selection.End(xlDown)).S

我正在尝试创建一个VBA宏,用于搜索条件格式列中的填充单元格,并仅选择包含数据但未被条件格式(无填充颜色)填充为红色的单元格

然后,一旦选择了没有填充的单元格,我想将它们复制到另一列的底部。我一直在选择我范围内的未填充单元格

    Sub PM2_COPY()

    Sheets("M&C").Select
    range("A2").Select
    range(selection, selection.End(xlDown)).Select
    selection.COPY
    Sheets("SUMMARY").Select
    range("U7").Select
    selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    range("U6").Select
    Application.CutCopyMode = False
    selection.AutoFilter
    ActiveWorkbook.Worksheets("SUMMARY").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("SUMMARY").AutoFilter.Sort.SortFields.Add(range( _
        "U6"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
        = RGB(255, 199, 206)
    With ActiveWorkbook.Worksheets("SUMMARY").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    range("U7").Select
    range.AutoFilter (cell.Interior.ColorIndex = xlNone)
    For Each cell In range.AutoFilter(cell.Interior.ColorIndex = xlNone)
    cell.Select
    selection.COPY
    Sheets("SUMMARY").Select
    range("A7").End(xlDown).Offset(1, 0).Select
    selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    End If
    Next
End Sub
使用并指定无颜色的单元格,然后复制可见单元格。如下所示:

With ActiveWorkbook.Worksheets("SUMMARY")
    Dim lastRow As Long
    lastRow = .Cells(.Rows.Count, "U").End(xlUp).Row

    .Range("U6:U" & lastRow).AutoFilter Field:=1, Operator:= _
        xlFilterNoFill

    On Error Resume Next
    Dim visibleCells As Range
    Set visibleCells = .Range("U7:U" & lastRow).SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    .ShowAllData ' Clear filter

    If Not visibleCells Is Nothing Then
        visibleCells.Copy
        .Cells(.Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues

        Application.CutCopyMode = False
    End If
End With

使用
Range.AutoFilter
和按颜色过滤。如果要循环,则需要对条件格式的单元格使用
cell.DisplayFormat.Interior.ColorIndex
。我在前面的代码中应用了一个过滤器来将它们排序到底部,这就是您所指的吗?我不确定range.autofilter函数在这里如何帮助我。当我把它放到我的代码中时,它会给我一个“参数不是可选错误”。如果你已经在使用过滤器,那么只需按颜色过滤,而不是排序。我指的是。。。您必须添加参数。您可以筛选没有颜色的单元格,然后可以复制可见的单元格。lastRow=.cells(.Row.Count,“U”)。End(xlUp)。突出显示的行显示了一个错误,指出“对象不支持此属性或方法”
.Rows.Count
,您有一个输入错误。