如何更改命名范围中的特定值
这可能是一个简单的,但我刚刚开始使用VBA。 所以我定义了大约10行的单列范围,并命名为CB_CL_Values
。
可以说,范围是{1,2,1,3,2,1,1,1,1,3}
,现在设置为将范围的每个值更改为1。
Sub Unit_Options_Reset() Range("CB_CL_Values") = 1 End Sub
比方说,我只想改变该范围的值4
到10
,并保留前3
。 我怎么写这个?
Range("CB_CL_Values").cells(4).Resize(7,1).Value=1
Range("CB_CL_Values").cells(4)
是您定义范围内的第四个单元格。 默认情况下, Cells(r)
(带有一个参数)将第r个单元格在整个范围内进行计数,然后在范围内进行计算,所以如果范围超过一列,则应使用Siddharth的符号(例如) .Cells(r,1)
(第r'行,第1列)。
请注意,如果您尝试处理技术上不在您的范围内的cewll,例如:
Range("A1:A10").Cells(20)
Excel不会抱怨代码会引用A20。
.Resize(7,1)
取第四个单元格,并将范围扩展为高7行,一列宽(Resize总是从起点向下和向右扩展)
您可以使用范围的.Cells
属性来寻址单个单元格。 对于多个单元格,可以使用循环。
Range("CB_CL_Values").Cells(r, 1).Value = "Something"
其中r
是第三行的3
。