1. 首页 > 科技

VBA 如何替换不同背景颜色的0为T?

VBA 如何替换不同背景颜色的0为T?

EXCEL VBA的问题 关于替换颜色

你试试这个是不是你想要的效果

Worksheets("1").Range("H6:Z8").Interior.ThemeColor = xlThemeColorAccent5

VBA改写两种方法 多列内容者添加背景色

Sub 四列皆相同者添加背景色()

  Dim rng As Range, i As Integer, t$

  With CreateObject("scripting.dictionary")

    For Item = 2 To Cells(Rows.Count, 1).End(xlUp).Row

      t = Cells(Item, 1).Value & "@" & Cells(Item, 2).Value & "@" & Cells(Item, 4).Value & "@" & Cells(Item, 5).Value

      If .exists(t) Then

        If rng Is Nothing Then

          Set rng = Cells(Item, 1).Resize(1, 5)

        Else

          Set rng = Union(rng, Cells(Item, 1).Resize(1, 5))

        End If

      Else

        .Add t, ""

      End If

    Next

  End With

  If Not rng Is Nothing Then rng.Interior.ColorIndex = 3

End Sub

如何用vba实现在输入不同名字显示不同底色?

您好!

第一步,在Excel中把你要涂色的人名放到sheet1的第一列,置顶;

第二部,在“开发工具”选项卡中点击Visual Basic,打开后在左边(VBA Project)中点击Sheet1,把下面的代码完整地拷贝进去(“开发工具”选项卡如果没有,需要在Excel界面左上角原图标->Excel 选项->常用 中勾选);

第三部,回到Excel界面,点击“开发工具”->“宏”->Sheet1.排序后涂色->执行。完成。

备注:由于colorindex最大值只有56,因此你的名字种类不能超过56种。若不够,可以把colorindex改为color。

Sub 排序后涂色()

Dim totalrows As Long

Dim someRange As Range

Dim colornumber As Long

totalrows = ActiveSheet.UsedRange.Rows.Count

Set someRange = Range("A1:A" & totalrows)

'先排序

Sheets("Sheet1").Sort.SortFields.Clear

Sheets("Sheet1").Sort.SortFields.Add Key:=someRange _

, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With Sheets("Sheet1").Sort

.SetRange someRange

.Header = xlGuess

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'再检查单一性

colornumber = 2

Range("A1").Interior.ColorIndex = colornumber

For i = 2 To totalrows

If Range("A" & i).Value = Range("A" & i - 1).Value Then

Range("A" & i).Interior.ColorIndex = colornumber

Else

colornumber = colornumber + 1

Range("A" & i).Interior.ColorIndex = colornumber

End If

Next

End Sub

VBA如何指定单元格的背景颜色

[A1].Interior.ColorIndex = 3

指定A1单元格的背景颜色为红色。