Vba 从范围的每个单元格中获取值。区域
我有我得到的密码Vba 从范围的每个单元格中获取值。区域,vba,excel,Vba,Excel,我有我得到的密码 Sub-QuickMap() 模糊公式细胞 暗文本单元格 暗号 暗区 如果TypeName(ActiveSheet)“工作表”,则退出Sub '为单元格子集创建对象变量 出错时继续下一步 设置公式单元格=范围(“A1”)。特殊单元格_ (xlFormulas、xlNumbers+xlTextValues+xlLogical) 设置TextCells=Range(“A1”)。特殊单元格(xlConstants,XLTextValue) Set NumberCells=范围(“A1
Sub-QuickMap()
模糊公式细胞
暗文本单元格
暗号
暗区
如果TypeName(ActiveSheet)“工作表”,则退出Sub
'为单元格子集创建对象变量
出错时继续下一步
设置公式单元格=范围(“A1”)。特殊单元格_
(xlFormulas、xlNumbers+xlTextValues+xlLogical)
设置TextCells=Range(“A1”)。特殊单元格(xlConstants,XLTextValue)
Set NumberCells=范围(“A1”)。特殊单元(XLCONTANTS,xlNumbers)
错误转到0
'添加新工作表并设置其格式
表。添加
用细胞
.ColumnWidth=2
.Font.Size=8
.HorizontalAlignment=xlCenter
以
Application.ScreenUpdating=False
“你喜欢公式单元格吗
如果不是空的(公式细胞),那么
用于公式单元格中的每个区域。区域
带ActiveSheet.Range(Area.Address)
.value=“F”
.Interior.ColorIndex=3
以
下一个领域
如果结束
'是否删除文本单元格
如果不是空的(文本单元格),则
用于文本单元格中的每个区域。区域
带ActiveSheet.Range(Area.Address)
.value=“T”
.Interior.ColorIndex=4
以
下一个领域
如果结束
'执行数字单元格
如果不是空的(NumberCells),那么
用于每个区域,单位为NumberCells.Areas
带ActiveSheet.Range(Area.Address)
.value=“N”
.Interior.ColorIndex=6
以
如果结束
下一个领域
如果结束
端接头
此代码所做的是使用其他工作表
的映射创建一个新的工作表
,例如,它在另一个工作表上放置一个背景颜色为黄色的N,其中是数字或常量
我想在地图上的单元格中将背景色设置为蓝色,其中另一个工作表上的值为数字且大于130
它似乎有一个非常简单的解决方案,但我尝试过使用它,就像使用范围一样,但没有得到任何令人满意的结果
所以,我的问题是,如何使用条件语句获得每个单元格的值?提前感谢。您可以在区域上循环项目。如果单个项目对应您的文本背景单元格将为蓝色,否则为黄色
Sub QuickMap()
Dim FormulaCells
Dim TextCells
Dim NumberCells
Dim Area
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
' Create object variables for cell subsets
On Error Resume Next
Set FormulaCells = Range("A1").SpecialCells _
(xlFormulas, xlNumbers + xlTextValues + xlLogical)
Set TextCells = Range("A1").SpecialCells(xlConstants, xlTextValues)
Set NumberCells = Range("A1").SpecialCells(xlConstants, xlNumbers)
On Error GoTo 0
' Add a new sheet and format it
Sheets.Add
With Cells
.ColumnWidth = 2
.Font.Size = 8
.HorizontalAlignment = xlCenter
End With
Application.ScreenUpdating = False
' Do the formula cells
If Not IsEmpty(FormulaCells) Then
For Each Area In FormulaCells.Areas
With ActiveSheet.Range(Area.Address)
.Value = "F"
.Interior.ColorIndex = 3
End With
Next Area
End If
' Do the text cells
If Not IsEmpty(TextCells) Then
For Each Area In TextCells.Areas
With ActiveSheet.Range(Area.Address)
.Value = "T"
.Interior.ColorIndex = 4
End With
Next Area
End If
' Do the numeric cells
If Not IsEmpty(NumberCells) Then
For Each Area In NumberCells.Areas
For Each Item In Area
If Item > 130 Then
ActiveSheet.Range(Item.Address).Value = "N"
ActiveSheet.Range(Item.Address).Interior.ColorIndex = 5
Else
ActiveSheet.Range(Item.Address).Value = "N"
ActiveSheet.Range(Item.Address).Interior.ColorIndex = 6
End If
Next Item
Next Area
End If
End Sub
Sub-QuickMap()
模糊公式细胞
暗文本单元格
暗号
暗区
如果TypeName(ActiveSheet)“工作表”,则退出Sub
'为单元格子集创建对象变量
出错时继续下一步
设置公式单元格=范围(“A1”)。特殊单元格_
(xlFormulas、xlNumbers+xlTextValues+xlLogical)
设置TextCells=Range(“A1”)。特殊单元格(xlConstants,XLTextValue)
Set NumberCells=范围(“A1”)。特殊单元(XLCONTANTS,xlNumbers)
错误转到0
'添加新工作表并设置其格式
表。添加
用细胞
.ColumnWidth=2
.Font.Size=8
.HorizontalAlignment=xlCenter
以
Application.ScreenUpdating=False
“你喜欢公式单元格吗
如果不是空的(公式细胞),那么
用于公式单元格中的每个区域。区域
带ActiveSheet.Range(Area.Address)
.Value=“F”
.Interior.ColorIndex=3
以
下一个领域
如果结束
'是否删除文本单元格
如果不是空的(文本单元格),则
用于文本单元格中的每个区域。区域
带ActiveSheet.Range(Area.Address)
.Value=“T”
.Interior.ColorIndex=4
以
下一个领域
如果结束
'执行数字单元格
如果不是空的(NumberCells),那么
用于每个区域,单位为NumberCells.Areas
对于区域中的每个项目
如果项目>130,则
ActiveSheet.Range(Item.Address).Value=“N”
ActiveSheet.Range(Item.Address).Interior.ColorIndex=5
其他的
ActiveSheet.Range(Item.Address).Value=“N”
ActiveSheet.Range(Item.Address).Interior.ColorIndex=6
如果结束
下一项
下一个领域
如果结束
端接头
这里有一个简单的例子:对于范围(“A1”、“C3”)中的每个c,如果c.Value=“1”,则代码>我有这个变量区域,我用它来迭代区域,但我不能使用Area.Value
Sub QuickMap()
Dim FormulaCells
Dim TextCells
Dim NumberCells
Dim Area
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
' Create object variables for cell subsets
On Error Resume Next
Set FormulaCells = Range("A1").SpecialCells _
(xlFormulas, xlNumbers + xlTextValues + xlLogical)
Set TextCells = Range("A1").SpecialCells(xlConstants, xlTextValues)
Set NumberCells = Range("A1").SpecialCells(xlConstants, xlNumbers)
On Error GoTo 0
' Add a new sheet and format it
Sheets.Add
With Cells
.ColumnWidth = 2
.Font.Size = 8
.HorizontalAlignment = xlCenter
End With
Application.ScreenUpdating = False
' Do the formula cells
If Not IsEmpty(FormulaCells) Then
For Each Area In FormulaCells.Areas
With ActiveSheet.Range(Area.Address)
.Value = "F"
.Interior.ColorIndex = 3
End With
Next Area
End If
' Do the text cells
If Not IsEmpty(TextCells) Then
For Each Area In TextCells.Areas
With ActiveSheet.Range(Area.Address)
.Value = "T"
.Interior.ColorIndex = 4
End With
Next Area
End If
' Do the numeric cells
If Not IsEmpty(NumberCells) Then
For Each Area In NumberCells.Areas
For Each Item In Area
If Item > 130 Then
ActiveSheet.Range(Item.Address).Value = "N"
ActiveSheet.Range(Item.Address).Interior.ColorIndex = 5
Else
ActiveSheet.Range(Item.Address).Value = "N"
ActiveSheet.Range(Item.Address).Interior.ColorIndex = 6
End If
Next Item
Next Area
End If
End Sub