VBA技术疑问:Range赋值语句后能否直接追加字体颜色设置?
在VBA中能否给Range语句直接追加字体颜色设置?
嘿,这个问题问得很接地气!直接给你结论:绝对不能在Range("S434").Value = "whatever"这行末尾直接追加.Font.Color = vbRed。
为啥不行呢?因为VBA里的赋值语句Range("S434").Value = "whatever"返回的是你赋的值(也就是字符串"whatever"),而不是Range对象本身。你后面接.Font的话,相当于给一个字符串去调用Font属性,这肯定会报错——字符串哪有Font属性呀!
那正确的写法有几种:
- 最直观的就是分两行写:
Range("S434").Value = "whatever" Range("S434").Font.Color = vbRed - 如果要给同一个单元格设置多个属性,推荐用
With语句,既简洁又高效:With Range("S434") .Value = "whatever" .Font.Color = vbRed ' 还能加其他属性,比如.Font.Bold = True之类的 End With - 要是非要写在同一行,也可以用分号分隔两个独立的语句,但可读性会差一些,只适合简单操作:
Range("S434").Value = "whatever": Range("S434").Font.Color = vbRed
内容的提问来源于stack exchange,提问作者Crebuloboldoaps
相关产品推荐
相关产品推荐

