Excel VBA代码(设置范围、定义值和放置颜色)

Excel VBA代码(设置范围、定义值和放置颜色),excel,if-statement,vba,Excel,If Statement,Vba,基本上这就是我现在的代码。我想创建一个模块,在任何工作表中,我设置范围,然后定义某些值(例如:介于0,15和0,28之间),并最终在带有该数字的单元格上添加颜色。但是我遇到了一些错误,最后一个if让我很难受 Sub ColorFrames() Dim range1 As Range Dim range2 As Range Dim valor1 As Variant Dim valor2 As Variant Dim Sh As Worksheet ' CODE Set range1 = A

基本上这就是我现在的代码。我想创建一个模块,在任何工作表中,我设置范围,然后定义某些值(例如:介于0,15和0,28之间),并最终在带有该数字的单元格上添加颜色。但是我遇到了一些错误,最后一个if让我很难受

Sub ColorFrames()

Dim range1 As Range
Dim range2 As Range
Dim valor1 As Variant
Dim valor2 As Variant
Dim Sh As Worksheet

' CODE

Set range1 = Application.InputBox(Prompt:="Please Select Range with data to be validated", Title:="Range", Type:=8)

valor1 = InputBox("Values between:")
valor2 = InputBox("and:")

If valor1 = "" And valor2 = "" Then
 ' and if < 0 and > 1... How?
    MsgBox ("Insert Values between 0 and 1! Thank you")
    Exit Sub
End If

For Each Sh In ActiveWorkbook.Sheets
    If Range(range1).Value >= valor1 And Range(range1).Value <= valor2 Then
        Sh.Interior.ColorIndex = 3
        Sh.Value = ""
    End If
Next Sh

Exit Sub
End Sub
子色框()
变暗范围1作为范围
变暗范围2作为范围
Dim valor1作为变体
Dim valor2作为变体
将Sh设置为工作表
“代码
设置范围1=应用程序.输入框(提示:=“请选择包含要验证数据的范围”,标题:=“范围”,类型:=8)
valor1=InputBox(“介于:”)之间的值
valor2=输入框(“和:”)
如果valor1=“”和valor2=“”,则
'如果<0且>1。。。怎么用?
MsgBox(“插入0到1之间的值!谢谢”)
出口接头
如果结束
对于ActiveWorkbook.Sheets中的每个Sh

如果Range(range1).Value>=valor1和Range(range1).Value一个选项在用户范围内工作(当前选择为默认值)并循环,直到提供有效的范围和条件(对于单页上的范围)

子色框()
变暗rng1 As范围
变暗rng2 As范围
暗变
双精度dblV1
双精度dblV2
作为布尔的dimb条件
做
设置rng1=Application.InputBox(提示:=“请选择要验证数据的范围”,标题:=“范围”,默认值:=Selection.Address,类型:=8)
循环,而rng1什么都不是
做
vArr=Application.InputBox(“请输入下限和上限,用“,”分隔,标题:=“值”,默认值:=“0,1”,类型:=2)
valor1=拆分(vArr,“,”)
dblV1=CDbl(valor1(0))
dblV2=CDbl(valor1(1))
b条件=(dblV1>=0)和(dvlv2 dblV1)
非条件时循环
Application.ScreenUpdating=False
对于rng1中的每个rng2

如果rng2.Value>=dblV1和rng2.Value优先,则需要明确定义
range1
大小。如果允许多重选择,则必须在每个工作表的代码中对其进行迭代。类似于为每个循环嵌套的
。还有这一行:
Range(Range1).Value
与任何
Range对象语法都不太匹配。它应该类似于
范围(range1.Address).Value
Sub ColorFrames()

Dim rng1 As Range
Dim rng2 As Range
Dim vArr
Dim dblV1 As Double
Dim dblV2 As Double
Dim bCondition As Boolean

Do
Set rng1 = Application.InputBox(Prompt:="Please Select Range with data to be validated", Title:="Range", Default:=Selection.Address, Type:=8)
Loop While rng1 Is Nothing

Do
vArr = Application.InputBox("Please enter lower and upper bounds, separated by a "", """, Title:="Values", Default:="0,1", Type:=2)
valor1 = Split(vArr, ",")
dblV1 = CDbl(valor1(0))
dblV2 = CDbl(valor1(1))
bCondition = (dblV1 >= 0) And (dvlv2 <= 1) And (dblV2 > dblV1)
Loop While Not bCondition

Application.ScreenUpdating = False
For Each rng2 In rng1
    If rng2.Value >= dblV1 And rng2.Value <= dblV2 Then
    With rng2
        .Interior.ColorIndex = 3
        .Value = vbNullString
    End With
    End If
Next rng2
Application.ScreenUpdating = True

End Sub