Board logo

標題: [發問] 異動資料自動反色(非點選儲存格反色) [打印本頁]

作者: msmplay    時間: 2018-1-8 22:43     標題: 異動資料自動反色(非點選儲存格反色)

[attach]28214[/attach]
請問如何使用VBA達到以下效果
1.點選【啟動】按鈕後,工作表1.2.3任何範圍,只要有異動資料的儲存格,均自動顯示為黃底紅字
2.選選【停止】按鈕後,停止自動反色功能,無論資料如何異動均無需反色效果

補充
1.並非點選儲存格反色效果,也就是無論滑鼠點選哪一儲存格或停留在哪一儲存格,均不影響。只有點選進入儲存格異動資料後才會反色
2.工作表可能新增或減少,因此希望可以指定,所以不是整個excel檔的所有活頁簿都要有此功能

範例
C4:D14為原始資料,點選【啟動】後,C23、C30、D27因為有異動資料,所以自動反色


[attach]28215[/attach]
作者: kim223824    時間: 2018-1-10 12:07

請問如何使用VBA達到以下效果
1.點選【啟動】按鈕後,工作表1.2.3任何範圍,只要有異動資料的儲存格,均 ...
msmplay 發表於 2018-1-8 22:43


如果沒有一定要VBA,用設定格式化的條件也可以達到。
1.
[attach]28225[/attach]
2.
[attach]28226[/attach]
3.
[attach]28227[/attach]
作者: msmplay    時間: 2018-1-10 15:40

回復 2# kim223824


   k大~非常感謝幫忙,但其實那個上下圖示只是舉例的意思啦!並不是比對差異反色,而是所有範圍只要有資料被異動即反色的意思
而且是希望按下啟動按鈕才開始資料變更反色,按下停止按鈕時無需反色效果,醬~~~~~不知是否有解呢?
作者: stillfish00    時間: 2018-1-11 14:11

回復 3# msmplay
依下面代碼,然後按鈕指定到巨集 ClickStart 和 ClickStop

Module1
  1. Public bIsStart As Boolean
  2. Public colChange As Collection

  3. Sub ClickStart()
  4.     If bIsStart Then MsgBox "已經是啟動狀態": Exit Sub
  5.     bIsStart = True
  6.     Set colChange = New Collection
  7. End Sub

  8. Sub ClickStop()
  9.     bIsStart = False
  10.     If Not colChange Is Nothing Then
  11.         For Each rng In colChange
  12.             rng.Interior.Color = xlNone
  13.             rng.Font.Color = xlAuto
  14.         Next
  15.         Set colChange = Nothing
  16.     End If
  17. End Sub
複製代碼
ThisWorkbook
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2.     If bIsStart Then
  3.         If Sh.Name = Sheets(1).Name _
  4.             Or Sh.Name = Sheets(2).Name _
  5.             Or Sh.Name = Sheets(3).Name Then
  6.             
  7.             colChange.Add Target
  8.             Target.Interior.Color = vbYellow
  9.             Target.Font.Color = vbRed
  10.         End If
  11.     End If
  12. End Sub
複製代碼

作者: msmplay    時間: 2018-1-11 19:10

回復 4# stillfish00


   s大~~~~~~好厲害喔!!!!這就是小妹所需的功能~~~~~~再次感謝你的熱心幫忙喔!!!
作者: msmplay    時間: 2018-1-12 08:13

回復 4# stillfish00


   s大~~~~不好意思可以再請教一個題外題嗎就是如果想要讓檔案ㄧ打開「啟動」效果就自動啟動的話,該怎麼修改或新增程式碼呢?
ㄝ就是除非按下「停止」,否則反色效果就一直開著,請問這可行嗎?
作者: stillfish00    時間: 2018-1-12 10:18

回復 6# msmplay
add in ThisWorkbook
  1. Private Sub Workbook_Open()
  2.     ClickStart
  3. End Sub
複製代碼

作者: msmplay    時間: 2018-1-18 20:25

回復 7# stillfish00


   s大~~~~~再次感謝幫忙ㄛ!!!
作者: paul3063    時間: 2018-1-20 22:54

回復 7# stillfish00

stillfish00大,
如果原資料的儲存格不等於異動資料的內容,或是異動資料有做變動時都會變色,這樣程式碼要怎樣做修改?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)