vba里面 cell和cells sheet和sheets有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba里面 cell和cells sheet和sheets有啥区别相关的知识,希望对你有一定的参考价值。

为什么有的用cell有的有用cells

很简单呀,Cells 是指定范围内的单元格,可以包含1个或1个以上的单元格;Cell 是指定单元格,只包含1个单元格。Sheet 同理。 参考技术A 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
有书上有对程序员的忠告,意思是这样的:对可省略又可不省略的关键字,最好不要省略而是写完整。这样既增加程序的可读性,又可避免歧义和错误。
参考技术B cells和sheets都是对象名.是保留字段.比如 cells(1,1) sheets(1)等
sheet可以指属性但不是对象名,也可以自己定位为变量名.比如 workbooks.sheet
cell什么都不是.最多用来定义为变量名.本回答被提问者和网友采纳

VBA 强制转日期格式

1、强制转日期格式,yyyy-m-d

Sheet2.Cells(2, 1) = Format(Sheet2.Cells(2, 1), "yyyy-m-d")
Sheet2.Cells(2, 25) = Format(Sheet2.Cells(2, 25), "yyyy-m-d")

2、取日期格式中的年 、月。

Sheet2.Cells(2, 3) = Month(Sheet2.Cells(2, 1))
Sheet2.Cells(2, 2) = Year(Sheet2.Cells(2, 1))

 



以上是关于vba里面 cell和cells sheet和sheets有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

VBA 强制转日期格式

vba行列循环语句

ABAP 实现 vba 设置range的属性问题

怎样在Word中用VBA操作表格

EXCEL VBA 读AS400数据中文乱码问题

excel如何用vba批量提取指定工作表?