首页 > 解决方案 > 将 If/End If 添加到宏

问题描述

我正在尝试向复制和粘贴宏添加一个条件,如果 table1 中的行是红色的,它会从 table1 复制一行并将其粘贴到 table2 上。

我试过了:

Sub ColdLake1()

If Range("B55").Interior.ColorIndex = 3 Then

    Range("B55:H55").Select
    Selection.Copy
    Range("C140").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False      
        End If
End Sub

它什么也不返回。有任何想法吗?

谢谢(我对这一切都很陌生)。

标签: excelvba

解决方案


这对我有用:

Sub ColdLake1()
    With ActiveSheet
        Debug.Print "ColorIndex", .Range("B55").Interior.ColorIndex
        If .Range("B55").Interior.ColorIndex = 3 Then
            .Range("B55:H55").Copy
            With .Range("C140")
                .PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False
                .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False
            End With
        End If
    End With
End Sub

如果您的代码没有做任何事情,可能是因为颜色不是您认为的那样,或者由于某种原因您的代码没有进入If块。设置一些断点,看看发生了什么。 https://www.excel-easy.com/vba/examples/debugging.html


推荐阅读