2017-07-31 49 views
0

我是VBA的新手,正在通过练习学习它,其中一个宏是为红色框着色如果我点击宏按钮。我录一个宏初步检查什么的VBA代码,它用来做在VBA中选择活动单元

Sub MakeMeRed() 
' 
' MakeMeRed Macro 
' 
    With Selection.Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .Color = 192 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
    End With 
End Sub 

我用Google搜索周围发现有选择活性细胞的另一种方法,所以我想这种方式来填充单元格。

Sub TestMacro() 
' 
' TestMacro Macro 
' 
    With ActiveCell 
     '.Value = "250" 
     .Color = 200 
    End With 
End Sub 

但是,这段代码不起作用,它不会填充选定单元格的颜色。你能指出我要出错的地方吗?

+1

变化'ActiveCell'到'Selection.Interior' –

+0

和改变。颜色以.interior.color。在旁注中,使用ActiveCell并不明智,最好明确引用单元格。例如A1变为Thisworkbook.Thisworksheet.Cells(1,1)(你可以用显式的工作簿或工作表来替换这个工作簿和这个工作表) – Luuklag

+0

Hey @Scott,任何原因Active Cell都不起作用,因为根据我的理解,它也是指向当前单元格,可以请让我知道区别以及何时使用 –

回答

0

为了等于两者,该部分中的ActiveCell是第一个中的选择。要改变颜色,你需要在内部部分的某处滑动。您可以使用With ActiveCell.Interior或使用块.Interior.Color = 200

2

这里有2方法来引用单元格内的颜色。使用ActiveCell.Interior.ColorIndexActiveCell.Interior.ColorActiveCell.Interior.Color可以得到4个不同的值。

Sub TestMacro() 

    With ActiveCell 
     .Value = 1 
     .Interior.ColorIndex = 3 

     .Offset(1, 1) = 21 
     .Offset(1, 1).Interior.Color = RGB(255, 0, 0) 

     .Offset(1, 2) = 22 
     .Offset(1, 2).Interior.Color = vbRed 'vbRed = 255 

     .Offset(1, 3) = 23 
     .Offset(1, 3).Interior.Color = "&HFF" 'FF = 255; &H is for typeinfo 

     .Offset(1, 4) = 24 
     .Offset(1, 4).Interior.Color = 255 
    End With 

End Sub 

它看起来像这样:

enter image description here