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