观察值时VBA修改范围

时间:2018-01-11 12:27:15

标签: excel vba excel-vba conditional-formatting

我试图让一个子工作,根据值" TRUE"或者" FALSE"出现。我已经问了下面的问题,并且已经到了下面的代码。

VBA Excel Format Range when value is found

Option Explicit

Public Sub MarkCellsAbove()
Dim ws   As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2")
Dim v    As Variant
Dim i    As Long, j As Long, n As Long, m As Long, r As Long, y As Long
Dim rng  As Range
Dim rCell As Range
Dim DynamicArea As Range
Dim t    As Double


' get last row in column C
  n = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
' get last column from A
  y = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' set dynamic area to above values
Set DynamicArea = ws.Range(Cells(1, 1), Cells(n, y))

' clear existing colors over the WHOLE column to minimize file size
  DynamicArea.Interior.ColorIndex = xlColorIndexNone

  For Each rCell In DynamicArea
  Select Case rCell.Text
          Case "TRUE"
            Set rng = rCell.Offset(-2, 0)
            rng.Interior.ColorIndex = 4

        Case "FALSE"
            Set rng = rCell.Offset(-2, 0)
            rng.Interior.ColorIndex = 5

        End Select
    Next


End Sub

这很有效 - 我可以在上面找到FALSE或TRUE的2行颜色。但是 - 我不仅要为此单元格着色,还要为Offset指定的范围内的所有单元格着色。所以,如果我指定上面的8个单元格,我想为8个单元格着色。

我希望有人可以提供帮助 - 我已经接近完成了这个!

1 个答案:

答案 0 :(得分:0)

尝试

function recursiveCopy($source, $destination)
{
    if (!file_exists($destination)) {
        mkdir($destination);
    }

    $splFileInfoArr = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);

    foreach ($splFileInfoArr as $fullPath => $splFileinfo) {
        //skip . ..
        if (in_array($splFileinfo->getBasename(), [".", ".."])) {
            continue;
        }
        //get relative path of source file or folder
        $path = str_replace($source, "", $splFileinfo->getPathname());

        if ($splFileinfo->isDir()) {
            mkdir($destination . "/" . $path);
        } else {
        copy($fullPath, $destination . "/" . $path);
        }
    }
}
#calling the function
recursiveCopy(__DIR__ . "/source", __DIR__ . "/destination");

请注意,如果rCell至少不在第9行中,您将收到运行时错误