- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-3-24
|
23#
發表於 2024-2-2 15:52
| 只看該作者
回復 22# coafort
Option Explicit '←這是偵測所使用的變數有沒有做宣告,要放最上面
Dim Brr '←這是同模組共用變數要放第2行
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Or .Item(1) = "" Then Exit Sub
If Not Intersect([AR212:AR219,AX212:AX219,AD222,AF222], .Cells) Is Nothing Then
.Cells(1, 2) = Val(.Cells(1, 2)) + Val(.Value)
.ClearContents
End If
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim b As Range, c As Range, i&
With Target
Set b = [AJ212:AJ219]: Set c = [AR212:AR219,AX212:AZ219]
If Not IsArray(Brr) Then
ReDim Brr(1 To b.Count, 1 To 3)
For i = 1 To UBound(Brr)
Brr(i, 1) = b(i).Interior.Color Mod 256
Brr(i, 2) = b(i).Interior.Color \ 256 Mod 256
Brr(i, 3) = b(i).Interior.Color \ 256 ^ 2 Mod 256
Next
End If
Set c = Intersect(.Cells, c)
If Not c Is Nothing Then
Intersect(c.EntireRow, b).Interior.Color = RGB(255, 255, 0) '黃色
Else
For i = 1 To UBound(Brr)
If b(i).Interior.Color = RGB(255, 255, 0) Then b(i).Interior.Color = RGB(Brr(i, 1), Brr(i, 2), Brr(i, 3))
Next
Brr = Empty
End If
End With
End Sub |
|