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

时间:2014-01-15 18:34:05

标签: excel excel-vba vba

这可能很简单,但我最近才开始使用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。我怎么写这个?

2 个答案:

答案 0 :(得分:1)

您可以使用范围的.Cells属性来处理单个单元格。对于多个单元格,您可以使用循环。

Range("CB_CL_Values").Cells(r, 1).Value = "Something"

r代表第三行3

答案 1 :(得分:1)

Range("CB_CL_Values").cells(4).Resize(7,1).Value=1

Range("CB_CL_Values").cells(4)是您定义范围内的第4个单元格。默认情况下,Cells(r)(带有一个参数)会使第r个单元格在您的范围内计数,然后向下计数,因此如果您的范围超过一列,则应使用Siddharth的表示法(例如).Cells(r,1) (第一行,第一栏)。

请注意,如果您尝试解决技术上不在您的范围内的问题,例如:

Range("A1:A10").Cells(20)

Excel不会抱怨代码会引用A20。

.Resize(7,1)获取第4个单元格并将范围扩展为7行高度和1列宽(调整大小始终向下扩展并从起点向右)