Excel单元格颜色按AutoCAD颜色显示内容

时间:2017-05-09 17:18:10

标签: excel vba colors autocad

我希望的输出与此页面类似:http://sub-atomic.com/~moses/acadcolors.html,但在Excel中。

我们要做的是将AutoCAD颜色与单元格联系起来。我希望能够在单元格中输入颜色编号(比如颜色10,它是红色),并让单元格更改为该颜色。我不知道如何在不做宏的情况下做到这一点。我认为它将成为某种类型的VBA。

我有来自上面网站的RGB等价物 - 我假设我可以拉某种类型的查找。

我意识到这可以通过特别讨厌的条件格式来完成,但我真的更喜欢更精简的东西。

帮助?

编辑: UGP提供了一些非常好的代码,它完全符合我的需要。这是我最终使用的代码(根据我的工作表命名和一些附加功能进行了调整)。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim KeyCells As Range
  Set KeyCells = Range(Cells(1, 6), Cells(1000, 6))

  If Not Application.Intersect(KeyCells, Range(Target.Address)) _
    Is Nothing Then

    CellChanged = Target.Address 'Cell that changed
    If IsNumeric(Worksheets("Master").Range(CellChanged).Value) Then
      If Worksheets("Master").Range(CellChanged).Value = 0 Then
        Worksheets("Master").Range(CellChanged).Interior.ColorIndex = xlNone
        Worksheets("Master").Range(CellChanged).Font.Color = vbBlack
      Else
        Worksheets("Master").Range(CellChanged).Interior.Color = 
        Color(Worksheets("Master").Range(CellChanged).Value)
        Worksheets("Master").Range(CellChanged).Font.Color = 
        textColor(Worksheets("Master").Range(CellChanged).Value)
      End If
    End If

  End If
End Sub

Function Color(ByRef ID As Integer) As Long
  Dim R, G, B As Integer
  For i = 3 To 257
    If ID = Worksheets("Colors").Cells(i, 1).Value Then
      R = Worksheets("Colors").Cells(i, 2).Value
      G = Worksheets("Colors").Cells(i, 3).Value
      B = Worksheets("Colors").Cells(i, 4).Value
      Color = RGB(R, G, B)
      Exit For
    End If
  Next i
End Function

Function textColor(ByRef ID As Integer) As Long
  If ID <= 9 Then
    textColor = vbBlack
  Else
    If ID Mod 10 >= 4 Then
      textColor = vbWhite
    Else
      textColor = vbBlack
    End If
  End If
End Function

1 个答案:

答案 0 :(得分:0)

使用alt + f11:

打开编辑器,将此代码放入Sheet1中
"SELECT COUNT(*) as likes, user 
 FROM likes_week 
 WHERE WEEKOFYEAR(data_e) = WEEKOFYEAR(NOW()) 
 GROUP BY user ORDER BY likes"

它将检查从Cell(1,1)到Cell(1000,1000)的用户输入然后它从Sheet2中获取颜色,其中我将您链接的autocad表格如此复制(复制并粘贴表格): / p>

enter image description here