EXCEL的VBA中,SHEETS的CELL和RANGE有什么区别?

不太明白,求解。如果要值的赋值用哪个?哪个比较好。什么时候要加Value,什么时候不用加啊?麻烦了,加点分谢谢!... 不太明白,求解。
如果要值的赋值用哪个?
哪个比较好。什么时候要加Value,什么时候不用加啊?

麻烦了,加点分谢谢!
展开
 我来答
亲爱的浓眉先生
高粉答主

推荐于2019-09-27 · 说的都是干货,快来关注
知道答主
回答量:100
采纳率:0%
帮助的人:2.7万
展开全部

1、主体不同

CELLS(y,x)的两个参数分别为行和列。

Range()则是指一个区域。


2、范围不同

CELLS(y,x)是单个单元格对像。

Range()可以是一个单元格,也可以是多个单元格。

3、赋值不同

Cells()是对一个单元格赋值。

而Range()则可以对一个区域的所有单元格赋值。


注意:VBA中“Range(cells(y1,x1),cells(y2,x2)).Select”,就是指选中以cells(y1,x1)和cells(y2,x2)两单元格为对角线的一个区域。

参考资料来源:

百度百科——cell函数

百度百科——range


chenjin99
推荐于2018-02-25 · TA获得超过7061个赞
知道大有可为答主
回答量:1304
采纳率:100%
帮助的人:1877万
展开全部
CELLS(y,x)是单个单元格对像,两个参数分别为行和列;
Range()则是指一个区域,区域中可以是一个单元格,也可以是多个单元格。

VBA中常这样写:Range(cells(y1,x1),cells(y2,x2)).Select,就是指选中以cells(y1,x1)和cells(y2,x2)两单元格为对角线的一个区域。
----------------
赋值的话,如下几句都是赋值的,区别还是一样,Cells()是对一个单元格赋值,而Range()则可以对一个区域的所有单元格赋值:

Range("A1:D10").FormulaR1C1 = "10"
Range("A1:D10").Value = 100
Range("A13").Value = 1
Cells(13, 1).FormulaR1C1 = "10"
Cells(13, 1).Value = 100

说不上哪更好,要看你的需求,通常哪个随手就用哪个了。
---------------------
是的,Value在多数时候是可以省略的。如下所示:
Range("A1:D9") = "123"
Cells(3, 3) = "300"
Worksheets("Sheet1").Range("A1") = 3.14159

但如下所示的第二个.Value就不能省略,省略的话,不会报错,但是结果不正确。
'本示例在 Sheet1 上的单元格区域 A1:D10 中进行循环。如果这些单元格中的某个值小于 0.001,则将其值替换为 0(零)。

For Each c in Worksheets("Sheet1").Range("A1:D10")
If c.Value < 0.001 Then
c.Value = 0
End If
Next c

有书上有对程序员的忠告,意思是这样的:对可省略又可不省略的关键字,最好不要省略而是写完整。这样既增加程序的可读性,又可避免歧义和错误。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式