EXCEL的VBA中,SHEETS的CELL和RANGE有什么區別?


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)兩單元格為對角線的一個區域。

 

 

 

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

但如下所示的第e799bee5baa6e79fa5e98193e59b9ee7ad9431333236383433二個.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

有書上有對程序員的忠告,意思是這樣的:對可省略又可不省略的關鍵字,最好不要省略而是寫完整。這樣既增加程序的可讀性,又可避免歧義和錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM