我想要写发生改变的范围基于所述小区选择值单元的样式属性的码。
它工作时,我只是改变了文本的颜色或字体,但如果代码什么也不做,因为我添加了多个参数每个。我也没有得到错误。
Dim userRange As Range
Set userRange = Application.InputBox("Select a range", Type:=8)
For Each cell In Selection
If cell.Value < 0 Then cell.Font.FontStyle = "Comic Sans MS" & cell.Font.Size = 18 & cell.Font.Color = vbRed
If cell.Value >= 0 And cell.Value <= 500 Then cell.Font.Bold = True & cell.Font.Italic = True & cell.Font.Underline = True
If cell.Value > 500 And cell.Value <= 1000 Then cell.Font.FontStyle = "Monotype Corsiva" & cell.Font.Color = vbBlue & cell.Font.Underline = xlUnderlineStyleDouble
If cell.Value > 1000 Then cell.Font.FontStyle = "Arial" & cell.Font.Bold = True & cell.Font.Italic = True & cell.Interior.Color = vbGreen & cell.Font.Color = vbWhite
Next cell
我觉得我真的很接近,但我似乎无法找出什么我做错了!我希望我的解释很清楚,因为我真的不用于编程/脚本。
谢谢!
答案 0 :(得分:1)
我认为这应该解决它。您的旧代码并未执行每一行。您必须插入/dev/stderr
而不是:
的空格。另外,如果您使用&
功能来保存一些输入内容,它还会保存一些输入内容。另外请注意,您正在使用With
,请确保这是故意的。
ActiveCell
答案 1 :(得分:1)
您定义了userRange,但是稍后您将遍历选择中的单元格。另外,您使用不正确。您可以尝试以下方法:
Dim userRange As Range
Set userRange = Application.InputBox("Select a range", Type:=8)
For Each cell In userRange
If cell.Value < 0 Then
cell.Font.FontStyle = "Comic Sans MS"
cell.Font.Size = 18 & cell.Font.Color = vbRed
End If
If cell.Value >= 0 And cell.Value <= 500 Then
cell.Font.Bold = True & cell.Font.Italic = True
cell.Font.Underline = True
End If
If cell.Value > 500 And cell.Value <= 1000 Then
cell.Font.FontStyle = "Monotype Corsiva"
cell.Font.Color = vbBlue
cell.Font.Underline = xlUnderlineStyleDouble
End If
If cell.Value > 1000 Then
cell.Font.FontStyle = "Arial"
cell.Font.Bold = True
cell.Font.Italic = True
cell.Interior.Color = vbGreen
cell.Font.Color = vbWhite
End If
Next cell