Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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上的VBA删除没有颜色的单元格和相邻单元格_Vba_Excel_Excel 2010_Excel 2007 - Fatal编程技术网

Excel上的VBA删除没有颜色的单元格和相邻单元格

Excel上的VBA删除没有颜色的单元格和相邻单元格,vba,excel,excel-2010,excel-2007,Vba,Excel,Excel 2010,Excel 2007,因此,我试图找到一种使用VBA实现以下技巧的方法: 假设我们有一个巨大的Excel文件 C500有一些文本。 M500有一个值,它可以有颜色填充,也可以只是一个带有数字的默认白色单元格。 我想要实现的是在M500没有颜色填充时删除C500和M500 我知道这是一个简单的任务,至少看起来是这样的,我知道它可能只需要几行代码就可以解决。我仍然无法通过搜索在google或stack overflow上找到我需要的东西,可能是因为我搜索技能差,或者因为我想做的事情非常具体 任何帮助都将被深深感谢,我真的

因此,我试图找到一种使用VBA实现以下技巧的方法:

假设我们有一个巨大的Excel文件

C500有一些文本。 M500有一个值,它可以有颜色填充,也可以只是一个带有数字的默认白色单元格。 我想要实现的是在M500没有颜色填充时删除C500和M500

我知道这是一个简单的任务,至少看起来是这样的,我知道它可能只需要几行代码就可以解决。我仍然无法通过搜索在google或stack overflow上找到我需要的东西,可能是因为我搜索技能差,或者因为我想做的事情非常具体


任何帮助都将被深深感谢,我真的很想看到任何类似的宏网站,我可以作为参考。很抱歉,如果这个问题已经得到了回答。

我正在重写这个答案,因为需求需要迭代为范围内的每个单元格以及单元格的其他值定义的任何FormatCondition。例如,可以找到一种简洁的方法。基本上,它包括:

For X = 1 To Cell.FormatConditions.Count
    With Cell.FormatConditions(X)
      If .Type = xlCellValue Then
      ...
      If CellInterior Then
          DisplayedColor = IIf(ReturnColorIndex, Cell.Interior.ColorIndex, Cell.Interior.Color)
        Else
          DisplayedColor = IIf(ReturnColorIndex, Cell.Font.ColorIndex, Cell.Font.Color)
它探索了单元格中定义填充颜色的不同方法

所以你应该在这个范围内迭代

Dim rng As Range, cell As Range
Set rng = Range("M500:M550")
For Each cell In rng
   rem check the filling with the method in the link
   rem if it's the colorindex you want
   rem cell.Value = ''
   rem Also, get the row number and delete content of range ("C5XX")
Next cell

根据填充颜色删除单元格的宏?是的,这是我遇到的主要问题。但是!我希望它同时删除M500和C500,根据M500颜色,好的,非常感谢。你能对这个(文档)稍加评论以便我能更好地理解它吗?(因为我想我会经常使用它)更具体地说,我想知道第(1)项指的是什么。我想要的是检查M列中的值,例如500到550,这些值包含背景色,如果它们不包含背景色,则删除它们以及C500 C500中的任何数据。我怎么能用这个命令做到这一点?非常感谢!