返回列表 上一主題 發帖

[發問] 請大師們幫忙自動變換顏色,謝謝

回復 10# leirex1201

是只要A欄和B欄有值,然後從編輯的那一行A到K都變色對嗎?只要改紅字的部份就可以了
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 3 And Target.Row > 1 And Cells(Target.Row, "B") <> "" And Cells(Target.Row, "A") <> "" Then
    Set col = Sheets("公司清單").Columns(2).Find(Cells(Target.Row, 2), , , , , 2)
        AA = col.Offset(0, 1).Interior.Color
    Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Interior.Color = _
    col.Offset(0, 1).Interior.Color
Else
    Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Interior.Color = 16777215
End If
End Sub

TOP

回復  leirex1201

是只要A欄和B欄有值,然後從編輯的那一行A到K都變色對嗎?只要改紅字的部份就可以了
...
lpk187 發表於 2015-5-11 13:15


感謝lpk187大師

測試已可以使用,我把最下面的else if拿掉了,不然編輯範圍以外的儲存格都會變成"白底色"
再次感謝lpk187大師的用心幫忙,感恩

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 11 And Target.Row > 1 And Cells(Target.Row, "B") <> "" And Cells(Target.Row, "A") <> "" Then
    Set col = Sheets("公司清單").Columns(2).Find(Cells(Target.Row, 2), , , , , 2)
        AA = col.Offset(0, 1).Interior.Color
    Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Interior.Color = _
    col.Offset(0, 1).Interior.Color
End If
End Sub
天天空空啊~

TOP

回復  leirex1201

是只要A欄和B欄有值,然後從編輯的那一行A到K都變色對嗎?只要改紅字的部份就可以了
...
lpk187 發表於 2015-5-11 13:15



對了,忘了請問lpk187大師
我本身對顏色辨識較弱,
如果沒有相對應的色碼,太相似的顏色分不太清楚
有辦法自動標示相對應的色碼嗎...例如RGB或CMYK或HTML的FFFFFF

謝謝大師
天天空空啊~

TOP

回復 13# leirex1201

不用稱我大師,我也是初學者!

    說實在的以上的程式碼,我也是看到你的問題之後去做巨集,然後想出來的,而我找到的方法都沒辦法對應到RGB
但可以用RGB填入色彩,是否能對應到RGB色碼,就要請教其他大大們了!我找到的只有以下程式碼
Sub 巨集1()
Range("A1:A2").Interior.Color = RGB(0, 255, 1)'A1:A2儲存格填入色彩
Range("B1") = Range("A1").Interior.Color  '傳回A1物件的主要色彩
Range("B2") = Range("A2").Interior.ColorIndex    '傳回A2代表內景色彩
End Sub

TOP

感謝luhpro大師回覆

請問要貼到wookbook嗎?謝謝
leirex1201 發表於 2015-5-11 10:00

Private Sub cbGetColor_Click()
我是用按鈕事件來驅動,
每按一次就執行顏色檢核與變更.

TOP

http://blog.xuite.net/hcm19522/twblog/354838322

TOP

儲存格色彩代碼.rar (6.59 KB)
請教各位大師

我想要依"公司清單"這個sheet裡列的公司,讓"設備列表"這個sheet裡面的設備自動整列變色成為 ...
leirex1201 發表於 2015-5-8 18:27


各顏色代碼~
在A1填上顏色,滑鼠離開A1移至任一儲存格後,B1可顯示該A1顏色的代碼。

Q1︰W7為各顏色代碼一覽表。

僅供參考。

TOP

不好意思~還不熟悉介面的操作~重發一次^^"

『因本身對顏色辨識能力較弱,其望可以有相應的色碼以供辨識』

各顏色代碼~
在A1填上顏色,滑鼠離開A1移至任一儲存格後,B1可顯示該A1顏色的代碼。

Q1︰W7為各顏色代碼一覽表。

http://www.FunP.Net/469452

僅供參考。

TOP

本帖最後由 yen956 於 2015-11-15 20:52 編輯

1. 在Module1中貼上下列VBA
  1. Public colorNum As Integer

  2. '先執行此VBA一次, 以建立代碼表(Sheet1)
  3. Sub 顏色代碼表()
  4.     Dim i As Integer
  5.     For i = 1 To 56
  6.         Sheets("Sheet1").Cells(i, 15) = i
  7.         Sheets("sheet1").Cells(i, 16).Interior.ColorIndex = i
  8.     Next
  9. End Sub
複製代碼
2. 在Sheet2中上下列VBA
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     If Target.Count > 1 Then Exit Sub
  3.     If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
  4.     Target.Interior.ColorIndex = colorNum
  5. End Sub
複製代碼
3. 在Sheet1中上下列VBA
  1. '尚未建立代碼表以前, 不要啟動此VBA
  2. '可先將 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3. '改成 Private Sub Worksheet_SelectionChange2(ByVal Target As Range)
  4. '建立完代碼表後即可啟動此VBA, 目的是取得 colorNum 的值
  5. '最後再到 sheet2 中,點欄B的存儲格, 即可得到所要的顏色
  6. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  7.     If Target.Count > 1 Then Exit Sub
  8.     If Intersect(Target, [P1:P56]) Is Nothing Then Exit Sub
  9.     colorNum = Target.Interior.ColorIndex
  10. End Sub
複製代碼
換言之, 用兩個 Worksheet_SelectionChange 來達成
test.gif

TOP

Sorry,全部貼在 sheet1 中就可以了
用Union就可以了
  1. Public colorNum As Integer

  2. '先執行此VBA一次, 以建立代碼表(Sheet1)
  3. Sub 顏色代碼表()
  4.     Dim i As Integer
  5.     For i = 1 To 56
  6.         Cells(i, 15) = i
  7.         Cells(i, 16).Interior.ColorIndex = i
  8.     Next
  9. End Sub

  10. '尚未建立代碼表以前, 不要啟動此VBA
  11. '建立完代碼表後即可啟動此VBA
  12. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  13.     Dim rng As Range
  14.     If Target.Count > 1 Then Exit Sub
  15.     Set rng = Application.Union([B:B], [P1:P56])
  16.     If Intersect(Target, rng) Is Nothing Then Exit Sub
  17.     If Target.Column = 16 Then
  18.         colorNum = Target.Interior.ColorIndex
  19.     Else
  20.         Target.Interior.ColorIndex = colorNum
  21.     End If
  22. End Sub
複製代碼
test.gif

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題