excel中怎样用VBA实现单元格的字体显色?

 我来答
jackcsm
2014-08-20 · TA获得超过1039个赞
知道小有建树答主
回答量:943
采纳率:50%
帮助的人:251万
展开全部

条件3,我还没做完,以下代码可满足条件1和2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub px()

Dim a1, a2, a3, a4, a5, a6, a7, a8, b1, b2, b3, b4, b5, b6, b7, b8 As Integer

a3 = 0

A9字符长度 = Len(Sheet1.Cells(9, 1))

A10字符长度 = Len(Sheet1.Cells(10, 1))

 

'a1定义为列的循环,按B列包含多少行有效数而定循环数

'a2定义为行循环 , 按A9和A10的个数而定循环次数

For a1 = 1 To 10

For a2 = 1 To A9字符长度

If Len(Sheet1.Cells(a1, 2)) - Len(Replace(Sheet1.Cells(a1, 2), Mid(Sheet1.Cells(9, 1), a2, 1), "")) > 0 Then

'a3定义为一个累加变量,存放满足A9条件的次数

a3 = a3 + 1

End If

Next a2

'Sheet1.Cells(a1, 3) = a3

If a3 = 3 Then

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

a3 = 0

Next a1


'a1定义为列的循环,按B列包含多少行有效数而定循环数

'a2定义为行循环 , 按A9和A10的个数而定循环次数

For a1 = 1 To 10

For a2 = 1 To A10字符长度

If Len(Sheet1.Cells(a1, 2)) - Len(Replace(Sheet1.Cells(a1, 2), Mid(Sheet1.Cells(10, 1), a2, 1), "")) > 0 Then

'a3定义为一个累加变量,存放满足A9条件的次数

a3 = a3 + 1

End If

Next a2

'Sheet1.Cells(a1, 4) = a3

If a3 = 3 Then

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

a3 = 0

Next a1


For a1 = 1 To 10

If Not Sheet1.Cells(a1, 2).Find("05") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

If Not Sheet1.Cells(a1, 2).Find("50") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

If Not Sheet1.Cells(a1, 2).Find("24") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

If Not Sheet1.Cells(a1, 2).Find("42") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

If Not Sheet1.Cells(a1, 2).Find("69") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

If Not Sheet1.Cells(a1, 2).Find("96") Is Nothing Then

'Sheet1.Cells(a1, 5) = 1

Sheet1.Cells(a1, 2).Font.Color = vbRed

End If

Next a1

End Sub

追问
不行,你在A10中换一个数121看,
追答
恩,我的代码比较落后,楼上大神代码犀利,膜拜中。。。
姓王的wy451

推荐于2016-02-23 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8654万
展开全部

代码如下,详见附件

Private Sub CommandButton1_Click()
   Dim Arr, Ar1(1 To 3)
   Range("B:B").Font.ColorIndex = 0
   Arr = Range([B1], [B65536].End(3))
   For i = 1 To UBound(Arr)
      s = Mid(Arr(i, 1), InStr(Arr(i, 1), ".") + 1)
      If InStr(s, "05") > 0 Or InStr(s, "50") > 0 Or InStr(s, "24") > 0 Or InStr(s, "42") > 0 Or InStr(s, "69") > 0 Or InStr(s, "96") > 0 Then
         Range("B" & i).Font.ColorIndex = 3
      Else
         For j = 9 To 10
            d = Range("A" & j)
            If InStr(s, Left(d, 1)) > 0 And InStr(s, Mid(d, 2, 1)) > 0 And InStr(s, Right(d, 1)) > 0 Then Range("B" & i).Font.ColorIndex = 3
         Next
      End If
   Next
End Sub


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvrqing
推荐于2016-01-30 · TA获得超过3.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:89%
帮助的人:6212万
展开全部
如下方法:
With Selection
.WrapText = True '自动换行
.Interior.Color = 65535 '背景 黄
.Font.Name = "黑体" '字体
.Font.Size = 10 '字号
.Font.Color = -16776961 '颜色 红
End With
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友63a5984
2014-08-20
知道答主
回答量:35
采纳率:0%
帮助的人:10万
展开全部
所有可以用EXCEL直接操作的都可以通过录制宏来获取代码
你直接点击录制宏然后改变下颜色你看下代码就能知道代码怎么写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式