EXCEL 声明变量Set SH = Sheets("设置")

Set SH = Sheets("设置")
B = SH.Cells(s.Row, i).Value 声明为: Dim s As Range Dim i%
na = TextBox1.Text 声明为: Dim na As String

SH、B 这两个变量应该声明成什么变量?
上面我声明的对么?
正在谢谢excel VBN,一直声明数据类型搞不懂

1、在Excel的VBA中,声明变量语句为:Dim 变量名 As 变量类型。
2、Set 语句是给对象型变量赋值语句。
3、例如:Dim SH As worksheet 这句是声明了一个变量名为SH的工作表型变量。
4、而Set SH = Sheets("设置")这句是把工作表名为"设置"的工作表指定给变量SH。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
SH 可以是worksheet ,object,variant
B 要看你单元格的数据类型,可以是string,long,integer,double,single 不确定就variant
小程序不用考虑内存开销

RANGE 是对象类型的一种,是单元格选取的意思,你这里已经是获取选取的值VALUE 了,所以声明RANGE是不对的,range必须用SET 赋值本回答被提问者采纳
第2个回答  2015-03-22
如果实在不清楚,可以不声明,即使用默认的variant类型;如果确实想声明一下,那么可以dim SH as object,B as String(或者integer等,看你需要什么数据);如果还不死心,一定要搞清楚SH到底是什么类型,那么可以dim SH As Worksheet ,就是工作表类型,因为你赋值的Sheets("设置")是一个Worksheet,由于是对象,所以也可以用通用的object。
上面方法都可用,有什么区别呢,如果定义Worksheet(即真正的类型),这样写代码时会有代码提示,初学者推荐。
另外的声明没有问题。另外注意对象变量赋值用set本回答被网友采纳
相似回答