这可能很简单,但我最近才开始使用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
。我怎么写这个?
答案 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列宽(调整大小始终向下扩展并从起点向右)