|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
wangjingsker 发表于 2013-1-22 21:57 ![](static/image/common/back.gif)
把代码写在thisworkbook中就可以,也不用复制200次啊,但是那个切换保留上一次的问题倒是解决的很好 - Option Explicit
- Private Type TypeRageLast
- Range As Range
- ColorIndex As Long
- End Type
- Private Const ColorIndex = 5&
- Private RangeLast() As TypeRageLast
- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
- Call changecolor(Sh, Target)
- End Sub
- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- Call changecolor(Sh, Target)
- End Sub
- Sub changecolor(ByVal Sh As Object, ByVal Target As Range)
- Dim I As Long
- Dim Range1 As Range
-
- On Error Resume Next
- If UBound(RangeLast) = -1 Then
- ReDim RangeLast(0)
- ElseIf UBound(RangeLast) Then
- For I = 1 To UBound(RangeLast)
- If RangeLast(I).Range.Interior.ColorIndex = ColorIndex Then
- RangeLast(I).Range.Interior.ColorIndex = RangeLast(I).ColorIndex
- End If
- Next I
- End If
-
- I = 0
- ReDim RangeLast(0)
-
- For Each Range1 In Target
- I = I + 1: ReDim Preserve RangeLast(I)
- RangeLast(I).ColorIndex = Range1.Interior.ColorIndex
- Set RangeLast(I).Range = Range1
- Next Range1
- Target.Interior.ColorIndex = ColorIndex
- End Sub
复制代码 直接写在thisworkbook中一样的效果,焦点颜色那个只要在selection_change下也执行代码就行了,现在学类最大的障碍就是不知道类的优越性 |
|