excel vba中 range.text和range.value的区别

问题描述:

excel vba中 range.text和range.value的区别

我知道text和value的区别,但是我编辑的下列代码让我很模糊.

我有一个窗体,上面一个ComboBox和一个CommandButton,首先在ComboBox里录入值,通过单击按钮,判断sheet3表中A列从上往下是否为空,如果为空,则将ComboBox的值赋到该单元格内并放弃继续向下查找,如果不为空,则判断该单元格的值是否与ComboBox值相同,相同则放弃向A列录入,如果不相同,则继续在A列向下判断单元格是否为空.以1000行为例,重复在ComboBox中录入”111“然后多次点击按钮的两种代码如下:


代码1:

For a = 1 To 1000

If Sheet3.Range("A" & a).Value = "" Then

Sheet3.Range("A" & a).Value = ComboBox1.Value: Exit For

Else

    If Sheet3.Range("A" & a).value = ComboBox1.value Then

    Exit For

    End If

End If

Next


代码2:

For a = 1 To 1000

If Sheet3.Range("A" & a).Value = "" Then

Sheet3.Range("A" & a).Value = ComboBox1.Value: Exit For

Else

    If Sheet3.Range("A" & a).Text = ComboBox1.Text Then

    Exit For

    End If

End If

Next


代码2只是将代码1中间的那个if中的value换成了text,就实现了我想要的效果(只有一个单元格赋值为”111“),而代码1则是按一次按钮,就会在A列赋值一个”111“,请问这是为什么,另外如果将代码1或代码2中所有的value都变成text,是否也能实现我想要的效果.

请高人来回答一下,多谢了.


1个回答 分类:综合 2014-09-22

问题解答:

我来补答
数据类型不同.
如单元格的格式为“常规”,Range.value的数据类型会根据单元格内容而改变.
如内容为"ABC"则为文本型,内容为“123”则类型为数值型
而Range.text、 ComboBox1.Value、 ComboBox1.text均为文本型
你的代码1,如输入"abc",则没问题;如输入123,则会重复添加.
 
 
展开全文阅读
剩余:2000
下一页:格子里面填一下