如何更改命名范围中的特定值

这可能是一个简单的,但我刚刚开始使用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 

比方说,我只想改变该范围的值410 ,并保留前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