Board logo

標題: [發問] 求救自動選色及填色~ [打印本頁]

作者: leirex1201    時間: 2014-1-27 20:55     標題: 求救自動選色及填色~

請各位專家幫幫忙~萬分感謝
[attach]17385[/attach]
[attach]17383[/attach][attach]17384[/attach]
作者: leirex1201    時間: 2014-1-28 08:16

請各位專家幫忙指導一下~感謝
作者: Hsieh    時間: 2014-1-28 10:19

本帖最後由 Hsieh 於 2014-1-28 23:47 編輯

回復 2# leirex1201


    基本上格式顏色無法使用基本功能選擇顏色
必須利用VBA輔助才能達成
Thisworkbook模組程式碼
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2. Dim A As Range
  3. Application.EnableEvents = False
  4. With Target
  5.   If Sh.Cells(1, .Column) = "顏色" Then
  6.     Set A = Sheets("公司清單").[H:H].Find(Target, lookat:=xlWhole)
  7.     If Not A Is Nothing Then _
  8.     .Interior.ColorIndex = A.Interior.ColorIndex: .Offset(, 1) = A.Offset(, -1)
  9.   End If
  10.   DrowCell
  11. End With
  12. Application.EnableEvents = True
  13. End Sub
  14. Sub DrowCell()
  15. Dim A As Range, C As Range
  16. With Sheets("公司清單")
  17. For Each Sh In Sheets
  18.    If Sh.Name <> .Name Then
  19.    Set A = Sh.Rows(1).Find("所屬公司", lookat:=xlWhole)
  20.    For Each C In Sh.Range(A.Offset(1, 0), A.End(xlDown))
  21.       If Not .[C:C].Find(C, lookat:=xlWhole) Is Nothing Then _
  22.       C.Interior.ColorIndex = .[C:C].Find(C, lookat:=xlWhole).Offset(, 1).Interior.ColorIndex _
  23.       Else C.Interior.ColorIndex = xlNone
  24.    Next
  25.    End If
  26. Next
  27. End With
  28. End Sub
複製代碼
[attach]17395[/attach]
作者: leirex1201    時間: 2014-1-29 16:09

真是非常感謝板主的幫忙,按照板主的程式真的可以變色,但是沒有整列變色~請板主再指導一下,謝謝
作者: yen956    時間: 2014-2-6 07:38

試試看
  1. Sub 前景顏色代號_Change()
  2.    ActiveCell = Range("D2")
  3.    ActiveCell.Offset(, -1).Font.ColorIndex = ActiveCell
  4. End Sub

  5. Sub 背景顏色代號_Change()
  6.    ActiveCell = Range("E2")
  7.    ActiveCell.Offset(, -2).Interior.ColorIndex = ActiveCell
  8. End Sub

  9. Private Sub cmd填色_Click()
  10.    'ActiveCell 須在 欄10 和 欄16 之間
  11.    '按鈕 cmd填色 才有作用
  12.    col1 = ActiveCell.Column
  13.    If col1 < 10 Or col1 > 16 Then Exit Sub
  14.    
  15.    起點 = ActiveCell.Row
  16.    終點 = Cells(起點, 13).End(xlDown).Row
  17.    
  18.    'c欄 公司代表名稱 的總數
  19.    c代號總數 = [C3].End(xlDown).Row
  20.    
  21.    For mRow = 起點 To 終點
  22.       m代號 = UCase(Cells(mRow, 13))
  23.       For cRow = 3 To c代號總數
  24.          c代號 = Cells(cRow, 3)
  25.          If m代號 = c代號 Then
  26.             前景 = Cells(cRow, 4)
  27.             背景 = Cells(cRow, 5)
  28.             Cells(mRow, 10).Resize(, 7).Select
  29.             Selection.Interior.ColorIndex = 背景
  30.             Selection.Font.ColorIndex = 前景
  31.             Exit For
  32.          End If
  33.       Next
  34.    Next
  35. End Sub
複製代碼

作者: leirex1201    時間: 2016-6-7 14:42

回復 5# yen956

感謝yen956大大的幫忙




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