ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 彻底理解Range的Text,Value,Value2,Formula属性

彻底理解Range的Text,Value,Value2,Formula属性

作者:绿色风 分类: 时间:2022-08-18 浏览:141
楼主
ryueifu
我们一起学习Range对象的几个属性.

■セルの値を取得・設定する
  取得Cell的值   
・Valueプロパティ、Formulaプロパティ
Valueプロパティは、セルに値を取得・設定します。Formulaプロパティは、セルに数式を取得・設定します。
  Value取得Cell的值,Formula属性,取得Cell里的公式字符串,是可读可写的属性   
[書式]
オブジェクト.Value
オブジェクト.Value = 値

オブジェクト.Formula
オブジェクト.Formula = 数式

  格式

Object.Value 可读写
Object.Formula 可读写


   



オブジェクトにはRangeオブジェクトを指定します。セルに数式が入力されている場合、Valueプロパティは数式の結果の値を、Formulaプロパティは数式そのものを取得します。

例:
Sub Test()
  Range("A1").Value = 100
  Range("A2").Value = Range("A1").Value + 100
  Range("A3").Formula = "=If(Sum(A1:A2)>=300,""A"",""B"")"
  Range("A4").Formula = Range("A3").Formula
End Sub
这个Test,第一句设置A1的值wie100 ,接下来 A2的值等于A1+100
A3里使用vba输入了一个公式,A4的公式和A3一样.

   
 
このプロシージャを実行すると、Valueプロパティによってアクティブシートの「A1」セルに「100」の数値を設定します。次に「A2」セルに「A1」セルの値に「100」を加算した値の「200」を設定します。さらに、Formulaプロパティによって「A3」セルに「=If(Sum(A1:A2)>=300,"A","B")」の数式を設定します。最後に「A4」セルに「A3」セルに入力された数式をそのまま設定するため、「A1~A4」セルには「100」「200」「A」「A」の値が表示されます。
※ セルに表示されている値を、表示形式のとおりに取得したい場合は、Textプロパティを使用します。例えば、
  如果要取得单元格中眼睛直接看见的部分,则应读取其Text属性   
Debug.Print Range("A1").Value
Debug.Print Range("A1").Text

で、「A1」セルに表示されている値が「1,000」の場合、Valueプロパティは「1000」を、Textプロパティは「1,000」を、それぞれ取得します。
  比如,A1显示为 1,000,有千分位,那么Text属性是1,000, 而Value则是1000   

※ Formulaプロパティを使用してセルに数式を設定する場合、数式全体を「"」で囲みます。このとき、数式の中で「"」を使用している場合、「""」と2つのダブルクォーテーションを使用して記述します。なおR1C1形式の数式を設定する場合は、FormulaR1C1プロパティを使用してください。

  使用Formula属性设置公式的时候,公式整体要用双引号括起来,如果公式里本身包含双引号,则需要用2个双引号代表一个双引号.如果是RC形式的公式,则应改变其FormulaR1C1属性.   

评述:
  我们正常操作工作表时,读取Text和Value出来的结果没什么两样,但是,如果你使用自定义格式,设定了的单元格.就有区别了.
另一个注意事项,你可以使用A1.Value=30,使得A1为30,但是你不可以使用[A1].Text="北京" ,来改变其内容,原因在于Text属性只能读出,不能写入.
其实,Range还有Value2属性,这个属性和Value的区别在何处呢?一般情况下,区别不出.
只有当单元格类型为 日期时间型,或者货币形式的时候,比如,单元格里输入 2012-2-2,这个日期.Value属性和Text属性显示为这个日期.而Value2,则显示为一个整数,是一个序列.但是,如果你这么用: Msgbox [A1].value*1 ,则会看出返回结果不是一个日期.

如何判断单元格中是否有公式呢?
使用 HasFormula
但是,如果是数组公式,也显示为Truel了,如何区分是数组公式还是普通公式呢"
使用.HasArray. 如果为True,则肯定有数组,反之没有数组

2楼
wise

怎么这么多日文的?
3楼
ryueifu
我看的学习材料,参加的考试,都是日文环境.在这里买不到汉语的书.

我摘录的是日本著名的一个微软MVP.主页上很多内容呢. 打算全部翻译下来
4楼
HIMYM
日本什么意思呢   我怎么抗日呢?
5楼
ryueifu
科学无国界,当年鲁迅,苏步青,郭沫若,不也都来日本留学了.后来都是国家的栋梁
6楼
0Mouse
拜读了!可否帮忙看看这个问题?谢谢!
单元格显示值读取问题请教!
http://www.exceltip.net/thread-45101-1-1.html

7楼
hustclm
怎么是日文?看不懂
8楼
水星钓鱼
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap