ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 操作与技巧 > 【罗刚君VBA免费课作业题】之第九课作业 开帖

【罗刚君VBA免费课作业题】之第九课作业 开帖

作者:绿色风 分类: 时间:2022-08-18 浏览:134
楼主
罗刚君
提示:此题目是“VBA入门免费教学群”(群号:30729794)的课后作业
请未参与听课者绕道,谢谢配合。

________________________________________________________
1.        详述为什么要区分数据类型?

2.        为以下几个变量指定数据类型,填写在括号中。
99(      )、"上海码头"(     )、True(       )、-23.58(     )、99999(      )、#2/28/2013#(       )、"459" (      )、=128*6(      )

3.        对对象变量赋值和数据变量赋值的区别何在?

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500

7.如何识别变量的类型?
_____________________________________________________
补充:“VBA入门免费教学群”(群号:30729794)每周三上课一次,有兴趣者皆可报名,永远免费。
请提交作业时注明在免费听课群的昵称。三次不交作业者,将踢出群,让出空间让更多的人进来听课,请大家配合。
2楼
NULL
1.        详述为什么要区分数据类型?
不同的数据类型占用不同的内存空间,区分不同的数据类型,有利于提高程勋运行效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99(   byte   )、"上海码头"(string   )、True( Boolean   )、-23.58(  singgle   )、99999(long      )、#21/28/2013#(  date     )、"459" (     ingter )、=128*6(  ingter    )

3.        对对象变量赋值和数据变量赋值的区别何在?
对象用 set  变量 = 对象
数据变量 let 变量=数据 (let可以省略)
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value   ‘常量的值是固定的,不能赋予单元格的值给常量。
Dim Sheet1 As Range  ‘sheet1虽然可以使用,但是sheet1将不能再表示名称为sheet1的工作簿,
Set Rng = Worksheet(1) ’应使用worksheets(1)
dim STr as String = 112    ’变量不能在定义时赋值
Const Tim As Date = "#2013/8/9 14:59:80#"  ’ 1不需要双引号,2且时间的部分的秒超过了60,不符规定。

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
  (1)使用变量加快程序运行效率
  (2)正确的类型方便计算,减少出错

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
500 系统分配的数据类型为ingter。此类型最大值为3万多。而两数相乘为25万,超出了ingter的范围。
msgbox clng(500)*500

7.如何识别变量的类型?
利用typename函数。
3楼
tchsong
T t 作业于word文档中
9课作业.rar
4楼
kouhogliang
1.        详述为什么要区分数据类型?
每个数据类型都有各自的有效范围
2.        为以下几个变量指定数据类型,填写在括号中。
99(   Byte   )、"上海码头"(    Variant )、True(    Boolean   )、-23.58( Single    )、99999(   Integer   )、#2/28/2013#(     date  )、"459" (     Variant   )、=128*6(   Variant     )

3.        对对象变量赋值和数据变量赋值的区别何在?
   
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
在VBA中使用数据类型来整理数据,其目的是优化管理方式,提升工作效率。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
溢出 改为 msgbox WorksheetFunction.Product(500, 500)
7.如何识别变量的类型?
每个数据类型都有各自的有效范围 对照表1
5楼
玉丫头
1. 详述为什么要区分数据类型?
在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同。区分数据类型的目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。
2. 为以下几个变量指定数据类型,填写在括号中。
99(Byte)、"上海码头"(String)、True(Boolean)、-23.58(Single)、99999(Integer)、#21/28/2013#( Date)、"459" (String)、=128*6(Variant )

3. 对对象变量赋值和数据变量赋值的区别何在?
对对象变量赋值要用SET语句,对数据变量赋值直接使用等号即可。
4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value        声明常数时,后面的= expression只能是常数表达式
Dim Sheet1 As Range        变量名称和VBA中的保留字一致
Set Rng = Worksheet(1)                应是对象集合Worksheets(1)
dim STr as String = 112                变量类型和赋值矛盾
Const Tim As Date = "#2013/8/9 14:59:80#"                类型不匹配,声明的是日期类型,赋值是时间(小数)

5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
变量通常用于代替一个未知数,我们可以在程序中对这个未知数执行操作。变量还有简化录入工作、提升程序效率的作用(变量保存在内存中,读取内存中的变量速度快)。
6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
改为:MsgBox CLng(500) * 500
7.如何识别变量的类型?
应养成声明变量的习惯,默认声明的变量是变体型。
6楼
csppglass
江苏0基第九课作业.rar

请罗老师查收!
7楼
杭州小菜02
1.        详述为什么要区分数据类型?
1,避免出错,2,提升速度; 3,方便错误查找和代码维护
2.        为以下几个变量指定数据类型,填写在括号中。
99(byte)、"上海码头"( string)、True(   boolean  )、-23.58(   double  )、99999(  long    )、#2/28/2013#(     date  )、"459" (  integer    )、=128*6(  sting     )

3.        对对象变量赋值和数据变量赋值的区别何在?

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  :const是声明一个常数,不是引用的        
Dim Sheet1 As Range  :使用了关键字
Set Rng = Worksheet(1)  :set是用来给变量赋值对象引用的,不是赋值常量
dim STr as String = 112   :数据类型错误
Const Tim As Date = "#2013/8/9 14:59:80#"  数据类型错误

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500   
溢出错误,如果是要计算结果,需要先声明一个正确的变量


7.如何识别变量的类型?
F1或者百度
8楼
hunt
QQ ID hehex 第9课作业 -请参考附件Word 文档。

hehex 第9课作业.zip
9楼
zhufree
1.        详述为什么要区分数据类型?
         提高运行效率,减少内存占用

2.        为以下几个变量指定数据类型,填写在括号中。
99( BYTE)、
"上海码头"(STRING     )
True( BOOLEAN      )
-23.58( SINGLE )
99999(LONG      )
#2/28/2013#( DATE)
"459" (    STRING  )
=128*6(      )                    -------------请指导

3.        对对象变量赋值和数据变量赋值的区别何在?
           对象变量赋值必须SET赋值,数据变量可以直接=赋值

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  CONST定义常量类型   
Dim Sheet1 As Range   关键字是保留字
Set Rng = Worksheet(1)    WORKSHEETS,对象组应加S
dim STr as String = 112     常量类型赋值用CONST
Const Tim As Date = "#2013/8/9 14:59:80#"   日期型无需""包含

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
       提高执行效率,及利用变量引用较长的内容时减少输入错误

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500   程序执行结果超过系统识别的INT数据类型,可加CLNG函数修正或用工作表函数执行


7.如何识别变量的类型?
   TYPENAME函数



群名:福瑞
10楼
水云寒
1 区分数据类型能防错、提高执行效率、提高代码输入准确度
2 99(  byte )、"上海码头"( string  )、True( boolean  )、-23.58( single   )、99999(   long   )、#2/28/2013#(  date     )、"459" ( string  )、=128*6(  integer  )
3
4 1 const赋值不能修改,当A1的值到a时会变动
  2 sheet1 是系统内置的,不能作为变量名字
  3
  4 string为字符串变量,不能处理数值
  5 date是日期,不能处理时间
5 正确定义变量和数据类型能加快程序运行速度,
6 第一次出现500时,是integer类型,乘以500后,结果为250000超出了integer的范围
7 通过TypeName函数识别变量类型
11楼
小志就是我了
吉林-悟
1.        详述为什么要区分数据类型?
VBA能处理的数据很多,为了高效地管理这些数据,VBA中定义了多种数据类型,并将不同的数据分配给不同的数据类型。
一个数据类型就是一类数据的集合,合理地区分数据类型有利于提升程序的执行效率。
简言之,数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。

2.        为以下几个变量指定数据类型,填写在括号中。
99(  byte  )、"上海码头"(  string   )、True( boolean )、-23.58( single )、99999( long )、#2/28/2013#(  date  )、"459" (string)、=128*6(integer)

3.        对对象变量赋值和数据变量赋值的区别何在?
对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。
对对象变量赋值需要使用Set,但是其后对变量所代表的对象赋值时不再使用Set。
对象相当于是个集合,把对象的相关信息赋值给另一个对象,而数据变量只是代表唯一内容值。


4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value             常量赋值需常量表达式
Dim Sheet1 As Range                               与工作表sheet1重名
Set Rng = Worksheet(1)                            worksheets(1)
dim STr as String = 112                           const STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"         日期格式需为 M/D/YYYY

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
由于变量储存在内存中,所以读取速度很快。合理正确定义变量,可以有效利用内存,提升程序的执行效率。
合理命名变量名称,方便读写程序。


6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
因为程序默认前面的数字为数据类型,500为integer类型,于是将表达式的计算结果预先分配相同的数据类型Integer。但500*500超出了integer类型的范围,变换类型为long即可。
MsgBox clng(500) * 500

7.如何识别变量的类型?
使用typename
例如:MsgBox TypeName(128 * 6)
使用本地窗口,设置断点,可以看到已经运行的变量值和类型
12楼
398829134
1.        详述为什么要区分数据类型?
答:加快代码执行速度、增加代码易读性、防错等

2.        为以下几个变量指定数据类型,填写在括号中。
99(字节)、"上海码头"(字符串)、True(布尔)、-23.58(单精)、99999(长整数)、#2/28/2013#(日期)、"459" (字符串)、128*6(整数)

3.        对对象变量赋值和数据变量赋值的区别何在?
答:对象类型变量赋值需要使用 Set 语句,数据类型变量不需要。

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value'答:不能用单元格数据定义常量
Dim Sheet1 As Range '答:默认情况下 Sheet1 是一个工作表对象的名称,所以不能用来再次定义其它变量
Set Rng = Worksheet(1) '答:不能把 Worksheet 对象赋给 Range 类型的变量
dim STr as String = 112 '答:VBA不能这样直接定义变量的内容
Const Tim As Date = "#2013/8/9 14:59:80#" '答:已经使用了井号,就不需要使用双引号了

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:方便代码书写、加快代码执行速度、增加代码易读性、防错。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:表达式中的数字被强制为一个整数,但是结果超过了整数的范围。正确的代码应为:msgbox clng(500)*500

7.如何识别变量的类型?
答:找罗老师问(这个回答比那个百度好吧),哈哈,开个玩笑
最直接的识别方法是使用 typename 函数获取变量的类型名称。
_____________________________________________________

13楼
xrw010
QQ号:396788158
昵称:/XS才懂
第九课作业.zip
14楼
caihaiyu
QQ昵称:海域 号码115934012
问题一:区分数据类型最重要的一点就是可以提高程序的运行效率。打个比方,你去打酱油,你如果不知道要打几升,你拿了个水桶过去,那就浪费资源了,你如果带个矿泉水瓶,那就可能装不下,只有当你知道要多少升时才能准确的选择容器。定义数据类型就好比告诉程序要打多少酱油,程序才能准备多大空间。从而提高了运行效率。而且也防止出错。


问题二:99( byte )、"上海码头"(string )、True(boolean )、-23.58( single )、99999(long   )、#2/28/2013#(date )、"459" (string)、=128*6(  integer )

问题三:首先在格式上不一样:
       
        对象变量赋值:Dim rng as range
                      set rng = range("a1")
        数据变量:dim a$
                  a=range("a1")
        第二,意义不同:
        对象变量赋值:将对象赋给变量,当对象的值变化时,对象变量的值也会跟着变化
        数据变量:一旦将某个数据赋值给变量后,只要不重新给变量赋值,则变量的值不会改变


问题四:Const a As String = Range("a1").Value----常量要求用常数进行赋值

Dim Sheet1 As Range---sheet1 代表的是系统默认的 CodeName,不能定义成变量名称
Set Rng = Worksheet(1)----应该是Worksheets(1)
dim STr as String = 112----不能直接在定义变量时赋值
Const Tim As Date = "#2013/8/9 14:59:80#"----Const为定义常数,所以不能再将Tim又定义成日期型

问题五:1.可以加快程序运行速度
        2.通过规范的定义变量名称,可以提高程序可读性,以后自己修改起来也方便
        3.有效降低程序出错的各种隐患

问题六:因为程序一开始碰到500,就定义成intger类型,而后再乘以500后是250000,超出了Integer的存储上限,所以报错。
        修改:Msgbox cint(500)*500

问题七:可以用TYPENAME()获取到变量的类型
15楼
qing33670000
QQ群名:初学VBA
1、主要是节省内存,增加代码的运行速度。
2、byte,string,boolean,double,long,date,string,string
3、对象变量赋值要在对象变量前面加SET,
     数据变量赋值要在变量前面加LET或省略。
4、Const a As String = Range("a1").Value                const是定义常量,不是定义变量
Dim Sheet1 As Range                                             
Set Rng = Worksheet(1)                                       类型不匹配
dim STr as String = 112                                         语法错误,定义变量时不能直接在定义的时候赋值
Const Tim As Date = "#2013/8/9 14:59:80#"          类型不匹配,Date只有年月日,没有时分秒

5、定义数据类型可以节省内存,加快代码的运行速度。
   定义变量也可以加快代码的运行速度,可以节省重复输入对象或数值,还可以检测代码的准确性
   (对应的变量是否输入正确)
6、
7、
16楼
Crazywu
湖北-Craywu
-------------------------------------------------------------------------------------------------

1.        详述为什么要区分数据类型?
采用最合适的方式管理数据;加快程序代码执行效率;避免空间的浪费。
2.        为以下几个变量指定数据类型,填写在括号中。
99(    byte  )、"上海码头"( string    )、True(  boolean     )、-23.58( long    )、99999(  decimal    )、#2/28/2013#(   date    )、"459" (  variant    )、=128*6(  variant    )

3.        对对象变量赋值和数据变量赋值的区别何在?
最主要的是对象变量赋值需要使用set,而数据变量可以采用“=”直接赋值。
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"
变量类型不符,date适用于8字节。
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
通过定义变量可以对一些未知的对象或者数据执行操作,使得程序代码应用更广泛
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
计算结果被预先设置为表达式中第一个数值的数据类型,例中的500,integer类型,可以通过转换变量来实现:
MsgBox clng(500) * 500
7.如何识别变量的类型?
通过变量声明来进行类型的识别。

不知答的怎样
17楼
kcxs
客城小生的第九课作业

1.详述为什么要区分数据类型?
答:一个数据类型就是一类数据的集合,合理地区分数据类型有利于提升程序的执行效率。数据类型的存在价值在于分类管理数据,换言之,数据类型表明了数据以何种方式储存于内存中,在编程需要时根据实际情况调用合适的数据类型。每一个数据类型都有一个独有的数据名称,该名称表明了数据有效范围。
成绩0-59.9分表示不及格,60-100表示及格,那么0-59.9是数据范围,“不及格”相当于数据类型名称。
在VBA中,系统提供了Byte、Boolean、Integer、Long、Currency、Decimal、Single、Double、Date、String、Object、Variant 等数据类型,每个数据类型都有各自的有效范围。例如Byte类型表示0到255之间,Integer数据类型表示-32768到32767之间。
如果当前需要处理的数据是0分到100分的成绩,那么适合采用Byte型,若采用Integer型就浪费空间了。
在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同,VBA采用数据类型将它们分类管理。
简言之,数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。

2.为以下几个变量指定数据类型,填写在括号中。
99( Byte或Integer )、"上海码头"( String )、True( Boolean )、-23.58( Double )、99999( Long )、#2/28/2013#( Date )、"459" ( String )、=128*6( Integer )

3.对对象变量赋值和数据变量赋值的区别何在?
答:对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。例如对Rng变量赋值为a1单元格,可用代码:Set Rng = Range("a1")
如果忽略Set语句,那么将会运行出错,除非已经用Set对对象变量赋值过。对对象变量赋值需要使用Set,但是其后对变量所代表的对象赋值时不再使用Set。

4.下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value '------定义常量不能用变量表达式
Dim Sheet1 As Range '------变量名称不能与内置函数的名称相同
Set Rng = Worksheet(1) '------变量类型不匹配,Rng是单元格变量类型,WorkSheet是工作表对象的变量类型
dim STr as String = 112 '------定义变量不能用常量表达式,可改dim为const
Const Tim As Date = "#2013/8/9 14:59:80#" '------类型不匹配,日期date=2013/8/9

5.详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:在编写VBA程序并声明变量时,用户可以指定其数据类型,也可以不指定数据类型。如果用户不指定数据类型则VBA会默认将其看成变体型Variant,而在特殊情况下根据实现需要还可以自动转换成相应的其它数据类型,然后让VBA自己转换数据类型会使过程的执行更低,也就是利用慢速度换取方便,这对于一个程序员来说是不可取的。在编写程序时,应该根据需要强制指定一种数据类型。
VBA会自动根据数据的大小分配数据类型,它有时会分配失误。
有时还存在另一种情况,VBA没有足够的智能,无法完善、长远地考虑问题。例如:
Sub test()
    MsgBox 20000+20000
End Sub
必定出现错误:因为VBA将表达式“20000+20000”中第一个20000识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为40000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以最终导致执行失败,提示“溢出”。
可见VBA的自动识别、自动分配是没有前瞻性的,或者说没有后期自我调节性能,它只判断表达式第一个数字,然后自动将结果预先分配相同的数据类型,当计算结果的值超出预先分配的数据类型的上限时就会“溢出”。

6.说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:出错原因:因为VBA将表达式“500*500”中第一个500识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为250000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以最终导致执行失败,提示“溢出”。
改成MsgBox CLng(500) * 500或用求积的函数后不再出错:MsgBox WorksheetFunction.Product(500, 500)

7.如何识别变量的类型?
答:代码中TypeName函数用于判断一个数据或者变量的数据类型(查询帮助的关键字:TypeName 函数)。如:
Sub test()                          '放置位置:模块中
    Dim a As Variant                '将变量声明为变体型
    a = 1000                       '对变量赋值为1000
    [a1] = a & " : " & TypeName(a)    '将变量的值和变量在此时的类型输出到单元格
    a = 40000                      '对变量赋值为40000
    [a2] = a & " : " & TypeName(a)    '将变量的值和变量在此时的类型输出到单元格
    a = (1 < 2)                      '对变量赋值为表达式的计算结果,即True
    [a3] = a & " : " & TypeName(a)    '将变量的值和变量在此时的类型输出到单元格
    a = 10.5                        '对变量赋值为10.5
    [a4] = a & " : " & TypeName(a)    '将变量的值和变量在此时的类型输出到单元格
End Sub

18楼
manuel442
QQ:智山仁水
1.        详述为什么要区分数据类型?
不同的数据类型所占用的内存空间不一样,VBA对不同的数据类型处理效率也不同,规范数据类型不但能减少错误的发生,同也能提高程序运行速度。

2.        为以下几个变量指定数据类型,填写在括号中。
99(      byte )、"上海码头"( string    )、True(  boolean     )、-23.58(  single   )、99999( long     )、#2/28/2013#(  date     )、"459" (   string   )、=128*6(   integer   )

3.        对对象变量赋值和数据变量赋值的区别何在?
对对象变量赋值要用 Set语句,而对数据变量赋值直接用=就行
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
常量必须具体的值

Dim Sheet1 As Range
Sheet1为保留字(与其它对象名重名)

Set Rng = Worksheet(1)
应该为 Set Rng = Worksheets(1)

dim STr as String = 112
变量不能直接赋值,常量才可以


Const Tim As Date = "#2013/8/9 14:59:80#"
数据类型错误。

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
提高代码录入速度;纠错;减少错误的发生,便于程序维护。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
VBA首先将500设定为 integer数据类型,运算后数据的范围超过了 integer的存储空间导致溢出错误
修改: msgbox clng(500)*500

7.如何识别变量的类型?
首先从性质上判断:看是不是 字符型、数值型、逻辑值、日期型 以及对象
然后看对存储空间有没有要求。
19楼
一片叶子
弄错了,怎么不能删除!
20楼
一片叶子
@小鱼
  1. 1.        详述为什么要区分数据类型?
  2. 答:a.每一个数据类型都有一个有效的数据范围,合理利用可以使程序执行效率更高。
  3. b.不同数据占用的内存空间不同,运算也不同,可以通过数据类型区别开来。

  4. 2.        为以下几个变量指定数据类型,填写在括号中。
  5. 99( Byte )、"上海码头"( string    )、True(  Boolean     )、-23.58( Currency    )、99999( Long     )、#2/28/2013#( Date      )、"459" ( String )、=128*6(Integer      )

  6. 3.        对对象变量赋值和数据变量赋值的区别何在?
  7. 答:赋值给数据变量就是值;赋值给对象变量,他是对象,可以工作表、工作薄、单元格等对象。

  8. 4.        下面的5句代码出错的原因是什么?
  9. Const a As String = Range("a1").Value   Const定义的是常量
  10. Dim Sheet1 As Range     Sheet1是公用的工作表名
  11. Set Rng = Worksheet(1)   Worksheet是工作簿不是工作表
  12. dim STr as String = 112    声明变量不用=112
  13. Const Tim As Date = "#2013/8/9 14:59:80#"   不能在常量名称中使用#字符

  14. 5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
  15. 答:防止出错,提升效率

  16. 6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
  17. MsgBox 500 * 500   
  18. 答: 它的值=250000,未声明变量,VBA在执行时取乘数作为结果的数据类型。500属于integer型,250000属于long型。MsgBox CIng(500) + 500

  19. 7.如何识别变量的类型?
  20. 答:a.数值型b.字符型c.日期型d.变体型e.逻辑型f.对象型
21楼
一点点
1.        详述为什么要区分数据类型?
答:VBA中支持10多种数据类型,这些数据类型是数据以什么方法存储在内存中进行运算每隔数据类型都有一个独有的名称,它限制了数据的有效范围。也就是说不通的数据在内存中占用的空间是不同的,其运算方式也不同。Vba通过数据类型将数据加以区分,并在调用数据时采用合适的方式,从而使数据的存储和运算都以优越的方式进行,避免浪费空间及降低效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99( byte [范围0-255] )、"上海码头"( string[属于字符串类,是文本型?]  )、True( Boolean[布尔型] )、-23.58( currency?还是double?[有小数不知道归哪个,我一般归为double]   )、99999(long[长整型] )、#21/28/2013#(date[日期型])、"459" (string[也属字符串吧,经测试integer也行啊] )、=128*6( interger[计算后的结果是,不知道公式有没有类型] )

 默认的是integer我认为是byte

  -23.58这个更蒙。。到底是哪个类型啊
3.       对对象变量赋值和数据变量赋值的区别何在?
数据变量用let方法,一般情况下可以省略let直接赋值;而对象变量不同,对象变量赋值之前必须先用 set 指定对象,然后再给该对象赋值。

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  
  const是声明常量用的,用range(“a1”).value表示不合适,并且单元格的值不一定是唯一不变的,或相当于变量
Dim Sheet1 As Range     
sheet1是工作表名归保留字不可以当变量名
Set Rng = Worksheet(1)   
用set声明属于对象变量,不可以直接赋值, 一般rng为单元格变量,不能指定工作表对象。如果rng代表的工作表对象那么就要加上.name
dim STr as String = 112   
我认为不能给stiring字符串类型赋值数值,经测试没报错,哪这个错在不可以直接写=112好了
Const Tim As Date = "#2013/8/9 14:59:80#"
Tim是计算时间的函数不能作为变量使用

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
声明变量是为提升效率、防止出错而正确定义变量类型会减少内存空间提高运行速度,加大计算效率

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答: 数据 500VBA会默认为integer类型,当2个500相乘计算出来的积超出integer的范围,就报错溢出。那么可以用类型转换函数clng帮忙msgbox clng(500)*500

7.如何识别变量的类型?

 
22楼
daveman
1、方便变量的输入,方便记忆。2、加快代码运行效率3、防止因公共变量与本过程变量时产生的错误
2、99(  linteger    )、"上海码头"(  string   )、True(    boolean   )、-23.58(    single)、99999(  long    )、#2/28/2013#(   date    )、"459" ( string     )、=128*6(   string   )
3、有set的就是对象
4、Const a  = Range("a1").Value as string
Set Rng = Worksheets(1)
6、MsgBox a=500 * 500
23楼
转角爱
不坏 635731146  
作业.zip
24楼
amylee
漠沙如雪2013,提交第九课作业。请指正!
第九课作业.rar
25楼
miantiao1
罗总,今天的题目太有难度了,如下作业,请检查,谢谢
杭州_面条传说1  52884353

1.        详述为什么要区分数据类型?
      答: 区分数据类型就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率

2.        为以下几个变量指定数据类型,填写在括号中。
99(   Byte    )、"上海码头"(  String   )、True(    Boolean   )、-23.58(  single   )、99999(   long   )、#2/28/2013#(   date    )、"459" (   String   )、=128*6(  integer    )

3.        对对象变量赋值和数据变量赋值的区别何在?
    答: 1:对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value       ' 常数只能定义固定的字符串,不能定义单元格
Dim Sheet1 As Range       ‘这个执行没有报错,但sheet1容易和表格的名称混淆,不要使用
Set Rng = Worksheet(1)       ’ Set Rng = Worksheets(1)   ‘后面加“s“
dim STr as String = 112      ’放在一行我搞不定,分两行写
                               dim STr as string
                               STr="112"
Const Tim As Date = "#2013/8/9 14:59:80#"      ’Const Tim As Date = "2013/8/9 14:59:40"  ‘将#去掉,80秒改为60秒以下

5.详细分析在编程过程中正确定义变量与数据类型有哪些优势。
        1:可以加快程序运行速度
        2:可以加快程序录入速度
        3:可以代码纠错
6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
    msgbox CLng(500)*500

7.如何识别变量的类型?
   答:使用 “TypeName("变量名称")”获取变量的类型。
26楼
筱悠
第九课作业:筱悠 的~

1.        详述为什么要区分数据类型?

答: 准确的定义数据类型,可以有效节省资源,提高代码运行速

2.        为以下几个变量指定数据类型,填写在括号中。

99(  byte )、"上海码头"(  string   )、True(   Boolean     )、-23.58(  Single   )、99999(  integer )、#2/28/2013#(date )、"459" (    string  )、=128*6(   integer   )

3.        对对象变量赋值和数据变量赋值的区别何在?

答:对象变量第一次赋值时候必须使用 set 对面变量名称 = ?  数据变量一般直接 变量名称 = ?即可

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value    答:const只能赋值常量,而Range("a1").Value是变量
Dim Sheet1 As Range      答:变量名称不能为sheet1等VB中的函数名称,对象,方法等
Set Rng = Worksheet(1)   答:等号后边应该为worksheets(1)
dim STr as String = 112  答:定义常量并赋值应该有const不能用dim
Const Tim As Date = "#2013/8/9 14:59:80#" 答:DATE数据类型不包括时间

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:根据罗老师的指点,主要有以下几方面优势:
    5-1 可以检查同一个变量名称在代码中拼写是不是始终一样(即是不是正确)
    5-2 所编写的宏多的时候,可能一个名称不止在一个过程中出现,定义全局变量会使该变量的计算结果保存从而影响        下一个使用该名称的变量的计算结果
    5-3 对于引用单元格数据中的文本型数字,定义变量数据类型可以确保数字的正确运算
    5-4 定义变量名称,可以加快同一个变量名称的录入速度(快捷键ctrl+j会弹出该字符打头的已定义的变量名称)
    5-5 定义合适的数据类型可以提升代码运行速度

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:未定义变量数据类型时候,variant会根据第一个数字确定其数据类型,500的数据类型最小为integer,但是500*500超出integer的范围,就会出现"溢出"的错误。
     修改为 MsgBox CDbl(500) * 500

7.如何识别变量的类型?
答: 使用 TypeName函数来判别数据的类型
27楼
华德莱
群昵称:华德莱

1.        详述为什么要区分数据类型?
因为在excel的计算中,各种数据会被电脑根据数据的类型按不同的格式分配在内存中,指定正确的数据类型可以提高内存的使用效率和代码的运行速度

2.        为以下几个变量指定数据类型,填写在括号中。
99(byte)、"上海码头"(string)、True( boolean )、-23.58(single)、99999(long)、#2/28/2013#(date)、"459" (string)、=128*6(byte)

3.        对对象变量赋值和数据变量赋值的区别何在?
对象变量赋值时,只能对其赋予对象(如range,worksheet等),不能直接将数字,字符等赋予对象变量,如果要赋值需要使用set进行操作


4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value             不能将对象赋值给常量
Dim Sheet1 As Range                                    Sheet1是excel默认工作表名,变量命名有误
Set Rng = Worksheet(1)                               让对象变量赋值第一张工作表应使用worksheets(1)
dim STr as String = 112                                 变量不能声明后直接赋值
Const Tim As Date = "#2013/8/9 14:59:80#"   Date类型不包含时间

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
正确的定义变量和数据类型有如下好处
1,简化编程输入,提高效率
2,提高程序的执行速度
3,防错


6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500

系统在计算500*500时,会将第一个500识别为integer型,同时计算结果也默认成为integer。而计算结果250000超出了integer的范围,所以会出错。将
代码改为msgbox clng(500)*500,或MsgBox WorksheetFunction.Product(500, 500)  即可


7.如何识别变量的类型?
可以通过TypeName函数让直接让系统给出变量的类型
28楼
cxleaf
第8课作业已补交
第9课作业(cxleaf).zip
29楼
ldc6213
QQ号:171774787
第9课的回答.rar
30楼
gaoshuichang1
第九课作业.zip

在VBA入门免费教学群的昵称:顺眼了(80938160)
31楼
124803430
1.区分数据类型能节约内存空间,可以加快电脑运算速度
2.99( byte)、"上海码头"(string)、True(boolean)、-23.58(single)、99999(long)、#2/28/2013#(date)、"459" (variant)、=128*6(variant)
3.对象变量是代表一种对象。数据变量代表一个数值
4.第一句应该是常量应该指定特定的数值;第二句应该是对象变量只能用set或let来声明;第三句不知道;第四句应该是变量不能在同一行中直接赋值;第五句应该是用变量来定义数据类型
5.第一点能够提升运行速度;第二点编译代码时候出错几率低一点
6.500和500如果没定义数据类型应该都是variant类型,结果应该是个长整型,但是电脑定义的却是variant,所以报错。
Dim a As Long, b As Long
a = 500
b = 500
MsgBox a * b
7.用那个typename函数可以达到目的
群内名字:疯狂小兵  
32楼
我是独行侠
学生QQ:308128924,网名:独行侠,在VBA免费入门教学群,QQ:30729794

第九课 作业
1.        详述为什么要区分数据类型?
答:
一、为了高效地管理这些数据,
二、合理地区分数据类型有利于提升程序的执行效率
简言之,数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。

2.        为以下几个变量指定数据类型,填写在括号中。
99( Byte )、"上海码头"(Byte)、True( Boolean)、-23.58( Integer  )、99999( String )、#2/28/2013#(Date)、"459" ( Byte )、=128*6( Integer )

3.        对对象变量赋值和数据变量赋值的区别何在?
答:
一、对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。
二、如果忽略Set语句,那么将会运行出错,除非已经用Set对对象变量赋值过。
三、对对象变量赋值需要使用Set,但是其后对变量所代表的对象赋值时不再使用Set。

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:
一、通过变量可以对一些未知的对象或者数据执行操作,让程序代码有更广阔的应用前景。
二、变量相当于一个占位符,先用它占位,待变量赋值后自动调用对变量所赋的值参与运算。
三、调用一切未知的值都需要用到变量,在VBA中变量的作用极其重要。
四、此外变量还有简化录入工作、提升程序效率的作用。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:
一、VBA的自动识别、自动分配是没有前瞻性的,或者说没有后期自我调节性能,它只判断表达式第一个数字,然后自动将结果预先分配相同的数据类型,当计算结果的值超出预先分配的数据类型的上限时就会“溢出”。
二、修改成:MsgBox WorksheetFunction.Product(500, 500)
或者,MsgBox CInt(500)* 500

7.如何识别变量的类型?
答:
根据是否文本、日期及数据有效范围来识别变量的类型

注:代码和语句部分没有学会,学生以后一定补上这部分作业
33楼
冰淇林的冬天
1.        详述为什么要区分数据类型?
不同的数据在内存中占用的空间是不同的,其运算方式也是不同的,通过区分数据类型,使数据的运算和存储都采用最佳的方式,避免浪费空间及效率降低。
2.        为以下几个变量指定数据类型,填写在括号中。
99(  byte    )、"上海码头"(  string    )、True(    boolean   )、-23.58(  single   )、99999(   long   )、#2/28/2013#(  DATE     )、"459" (   string   )、=128*6(  integer    )

3.对对象变量赋值和数据变量赋值的区别何在?
数据变量,数据变量是内存中的一个数值,通过参与过程中的运算来获取需要的参数
对象变量不是类存中的一个值,用于表示一个工作薄中不能确定的对象

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value   Const声明的是常量,Range("a1").Value值可变
Dim Sheet1 As Range            变量名称和保留字相同
Set Rng = Worksheet(1)         worksheets(1)
dim STr as String = 112                112是数值,不是文本,应该加” ”
Const Tim As Date = "#2013/8/9 14:59:80#"      加引号表示文本,应用string



5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势
      1、节省内存,提升运行速度
      2、防止变量输入错误
      3、当过程多的时候,防止变量引用错误
      4、可以用变量来替代容易输入错误的函数,防止输入错误,及减少复杂函数的输入时间


6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
运行时,VBA会根据提一个500,给500*500定义为integer,但500*500的结果为25000
数值超出了integer的范围
   Msgbox clng(500*500)   或
   Dim a AS LONG
   A = 500*500
   MSGBOX A


7.如何识别变量的类型?
文本 string           日期  DATE        逻辑  Boolean                         数值,根据大小选择,一般情况long就够用了


冰淇林的冬天     群号:30729794
34楼
paoge
1. 详述为什么要区分数据类型?
答:VBA能处理的数据很多,计算机的内存有限,为了高效地管理这些数据,避免空间浪费,提高代码的执行效率,所以要区分数据类型。
2. 为以下几个变量指定数据类型,填写在括号中。
99(Byte )、"上海码头"( String )、True(Boolean )、-23.58(Single )、99999(Long)、#2/28/2013#( Date )、"459" (String)、=128*6(Integer )

3. 对对象变量赋值和数据变量赋值的区别何在?
答:对象变量赋值用set方法,是必须参数,对象变量在初始化时值为Nothing。赋值后它就代表了一个对象,如A1单元格、一个工作表或者一个应用程序。数据变量是内存中的一个值。非对象变量赋值用LET方法,它是可选参数。
4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value     consta 声明的是常数,赋值号后面只能是常数。
Dim Sheet1 As Range    不能与VBA的保留字一致。
Set Rng = Worksheet(1)  worksheets关键字输错了,少了个s。
dim STr as String = 112   STr的数据类型是字符串,112是数值。类型不合。
Const Tim As Date = "#2013/8/9 14:59:80#"     

5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:正确定义变量和数据类型可以提升效率。防止错误。
6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:因为VBA将表达式“500*500”中第一个500识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为250000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以最终导致执行失败,提示“溢出”。
改:MsgBox  cLng(500) * 500
7.如何识别变量的类型?
答:可以用TypeName函数来判断变量的数据类型。



                                         单肩包时代
179630961
35楼
元兴华
第九课作业(=兴华).zip
36楼
zbkfbyb
1、区分数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率;在VBA中使用数据类型来整理数据,其目的是优化管理方式,提升工作效率。
2、99(   byte   )、"上海码头"(string)、True(boolean )、-23.58(integer)、99999(integer )、#2/28/2013#(date)、"459" ( string)、=128*6( variant)
3、   对对象变量赋值和数据变量赋值的区别   对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。



山东-海天(7189367) 提交
37楼
Erik_16888
364646658 笑看江湖
第九课作业
1、详述为什么要区分数据类型?
答:为了更好的分配空间,也有利于提高计算效率,减少各种判断
2、为以下几个变量指定数据类型,填写在括号中。
99               (默认为byte型)、
"上海码头"       (string字符串)、
True             (boolean逻辑值)、
-23.58           (double)、
99999            (long长整型)、
#2/28/2013#      (date日期型)、
"459"            (string字符串)、
=128*6           (integer)
3、对对象变量赋值和数据变量赋值的区别何在?
答:对对象赋值用set,而对数据变量赋值用let ,而let可以省略
4、下面的5句代码出错的原因是什么?
(1)Const a As String = Range("a1").Value
答:const的语法如下:
[Public | Private] Const constname [As type] = expression,
Expression是必需的。文字,其它常数,或由除 Is 之外的任意的算术操作符和逻辑操作符所构成的任意组合。而range.value表示一个返回或设置一个 Variant 型,它代表指定单元格的值。即不是一个文字,也不是常数,或其它表达式。
(2)Dim Sheet1 As Range
答:错误原因应是和系统保留名称冲突
sheet1通常为系统默认的保留的表的名称。而range代表某一单元格、某一行、某一列、某一选定单元格区域(该选定区域可包含一个或多个连续单元格块)。
(3)Set Rng = Worksheet(1)
答:错误的类型为:子过程或函数未定义。
如果worksheet修改为worksheets则可以通过,原因待查?
set的语法含义为将对象引用赋给变量或属性。语法格式为:Set objectvar = {[New] objectexpression | Nothing}。objectexpression必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。
(4)dim STr as String = 112
答:语法错误,dim语句仅仅用来声明变量,如果要赋值的话,可以直接用set,或者变量等于某个表达式
(5)Const Tim As Date = "#2013/8/9 14:59:80#"
答:错误类型:类型不匹配。如果是日期格式不需要半角的双引号。
本电脑中正确写法为Const Tim As Date = #8/9/2013#
或者Const Tim As Date = #2013/8/9 14:59:20#"要求时间中分和秒不能超过各自范围,例如秒不能超过59,分不能超过59
Date 变量存储为 IEEE 64 位(8 个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到 23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#) 扩起来,例如,#January 1, 1993# 或 #1 Jan 93#。
5、详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:正确定义数据类型,可以让电脑更好的分配空间,不需要转换,正确定义变量,可以减少出错的概率,避免变量的交叉。
6、说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox  500 * 500
答:在程序执行过程中,读到第一个数字时,会根据该数字的大小给它默认一个类型,该题中,500大于255,而小于32767.那么就给这个数字定义为integer的类型,而integer类型的区间范围为 -32,768 到 32,767 之间.当500*500后得到的结果为250000,远远超出数值类型的范围,会造成溢出错误。
可以修改为clng(500)*500,将第一个数字转换为long的类型,该类型的区间范围比较大,如果更大的话,可以先转换为货币型的数值。

7、如何识别变量的类型?
答:可以使用函数typename(),返回一个字符串,显示该值的类型
38楼
wendel
25421098 无心手语

1、详述为什么要区分数据类型?
VBA能处理的数据很多,为了高效地管理这些数据,VBA中定义了多种数据类型,并将不同的数据分配给不同的数据类型。
一个数据类型就是一类数据的集合,合理地区分数据类型有利于提升程序的执行效率。数据类型的存在价值在于分类管理数据,换言之,数据类型表明了数据以何种方式储存于内存中,在编程需要时根据实际情况调用合适的数据类型。
简言之,数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。

2. 为以下几个变量指定数据类型,填写在括号中。
99(byte)、"上海码头"(string )、True(Boolean )、-23.58(single )、99999( long)、#2/28/2013#(date )、"459" (string)、=128*6(integer )

3. 对对象变量赋值和数据变量赋值的区别何在?
赋值语法不同,对象变量第一次赋值用set 语句,以后可以不用。数据变量赋值用Let语句,(let经常省略)

4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
不能用单元格值(表达式)赋值给常量
Dim Sheet1 As Range
Sheet1一般是工作表的缺省名,即使修改了工作表名,也是代码表名。
Set Rng = Worksheet(1)
Worksheets是工作表集合,才能用索引值引用,轻微错误,rng一般常用在range区域,本身这种定义没有错,但是违反约定俗成的东西。
dim STr as String = 112
112是数值,不能赋值给string,应该写"112”。
Const Tim As Date = "#2013/8/9 14:59:80#"
""和##都可以定义日期常量,用一个即可。

5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
正确定义变量的数据类型,有3个优势,第一是正确使用用数据类型,避免各种未知错误,或者说有利于排错;第二是数据类型准确定义后,能提高程序运行效率,如果不恰当的定义不但可能会产生未知的错误,还有影响执行效率;第三是节约内存空间,尽管计算机硬件已经今非昔比,但是节约是美德。

6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
修改成:Msgbox  500& * 500。出错的原因是500 * 500,vba率先确认两个乘法因子为整数型即可,但是乘积超过了整数型的范围,所以显出溢出错误,而利用&提前对500强制确定为长整形,结果vba处理的时候,提前准备足够的空间,等计算完毕之后用于存储乘积。

7.如何识别变量的类型?
使用msgbox typename(变量名)  来识别变量类型。
39楼
本人号被盗,
1\不同大小的数据在内存中的占用空间是不同的,运算方式也不同,VBA采用数据类型将它们分类管理。在VBA中

使用数据类型来整理数据,其目的是优化管理方式,提升工作效率。简言之,数据类型的存在目的就是采用最适

合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率
2\99 integer 上海码头"(   string   True string -23.58 single 99999 long  )、#2/28/2013#(  string   
)、"459" ) string  )、=128*6 string
3\声明对象变量和数据变量的方法一致,都是通过Public、Private、Dim和Static四者之一实现,唯一分别在于

变量的类型名称不同
4\ dim STr as String = 112 ,这句不对
5、变量是指在程序执行过程中随时可能改变其值的量。变量没有固定的值,可以随时根据需求赋予新值。所以

变量通常用于代替一个未知数,我们可以在程序中对这个未知数执行操作,而不管这个未知数的值是什么,直到

需要时才对未知数赋值或者获取该未知数的值。
6、MsgBox 500 * 500修改成MsgBox “500 * 500”
7\当录入As加空格后,VBA会自动弹出变量类型的名称提示,只需录入首个字母就会自动定位到该字母开始的单

词处。图 5.13中由于As语句后面输入的字母r,所以定位到r开头的首个对象类型名称Range处。

对象名称        对象变量名称                 对象名称        对象变量名称
工作簿        WorkBook                批注        Comment
工作表        WorkSheet                名称        Name
单元格        Range                图形对象        Shape
图表        Chart                不确定对象        Object
类似于数据变量中的变体型Variant,对象变量类型中的Object也是一个万金油,它可以替代所有对象变量类型

,当不确定对象变量的名称时都可以用它替代。
以下是声明对象变量的常规手法:
Dim Rng As Range
Dim Cell As Range
Dim Sht As Worksheet
Dim Wb As Workbook
Public Com As Comment
Public 成绩 As Range
对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。例如对Rng变量赋值为a1单元格,可用

以下代码:
Set Rng = Range("a1")
如果忽略Set语句,那么将会运行出错,除非已经用Set对对象变量赋值过。
对对象变量赋值需要使用Set,但是其后对变量所代表的对象赋值时不再使用Set
群里QQ:249229293 河南蓝天
40楼
天空的雨
免费听课群-天空(第九课-数据类型作业).rar
41楼
静思雨
1、数据类型是指数据以何种方式储存在内存中,它决定变量的占用空间及变量种类,用合理的数据变量类型定义变量可以使程序具有更高的执行效率,避免空间浪费。
2、99(Byte)、"上海码头"(String)、True(Boolean)、-23.58(Single)、99999(Long)、#2/28/2013#(Date)、"459" (String)、=128*6(Long)
3、对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。
4、
  1)、不能用表达式对常量赋值
  2)、Sheet1与系统内置同名
  3)、rng会让人误会是range
   4)、dim STr as String = “112”
  5)、“” ##,用一种即可
5、
   1)、声明变量不仅在编程过程中提升速度,而且能提升代码执行的速度
   2)、防止出错
6、系统自动判断500为Integer数据类型,而500*500已经超出范围。MsgBox Clng(500)* 500
7、用typename()函数判断。


Q昵称:【浙】--小影
42楼
498429525
excel 混混
1.        详述为什么要区分数据类型?
指定数据类型,有利于程序按需分配内存,不造成内存浪费。有利于提高代码的执行效率。有利于防范程序错误,程序会尽可以转换数据为申明的数据类型,如果转换不了,就会提示错误。这样能将数据类型控制在合理的范围内,避免程序的错误。

2.        为以下几个变量指定数据类型,填写在括号中。
99(  byte    )、"上海码头"(  string   )、True(  boolean     )、-23.58(  single   )、99999(  long    )、#2/28/2013#(    date   )、"459" (  string    )、=128*6( variant     )

3.        对对象变量赋值和数据变量赋值的区别何在?
数据变量可以直接用=何值来赋值,对象是要求加set关键字的。

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Const 是申明常数,后面是接常数表达式。不可以将单元格值直接转给常数
Dim Sheet1 As Range
Sheet1为系统保留字不可做变量申明。再者sheet1也代表工作表,做为单元格区域申明不具可读性。
Set Rng = Worksheet(1)
错误一:Rng 一般做单元格区域变量申明。错误二:即使做工作表申明,赋值也要求=worksheets(1)

dim STr as String = 112
不可在非常数申明下对变量申明时直接赋值。dim STr as String :STr = 112

Const Tim As Date = "#2013/8/9 14:59:80#"
   日期的表达式有误,第一不要加””,加后就变为字符窜数据类型了。第二,应按月/日/年的表达方式,第三,没有80秒,正确为= #8/9/2013 2:59:59 PM#
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
        正确定义变量和数据类型,有肯于程序的可执行性,提高程序的执行效率,可以很快的排查到程序的错误点。也可以提高代码的输入效率。可以防止程序出错。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
  MSGBOX CLNG(500)*500,
MSGBOX WorksheetFunction.Product (500,500)
7.如何识别变量的类型?
  用typename(变量名)可误别变量类型,也可以设置断点,查看本地窗口,以知晓数据类型。
43楼
hjsky
四川-幺幺的作业,老师辛苦了~!
第九课作业.rar
44楼
朱朱无双
1.        详述为什么要区分数据类型?
答:数据类型是指数据以何种形式储存在内存中。
      VBA中的任何数据都有一种数据类型。数据类型可以由用户指定,称为显式声明;也可以由VBA程序自己选择,即隐式声明。然而自动分配的数据类型绝大部分准确,某些时候会产生错误,而且VBA分配数据类型是需要消耗内存的。也就是说在让VBA自行匹配数据类型的状态下,可以减少输入代码,但会牺牲程序的执行效率。所以在编写VBA程序时有必要定义所有变量的数据类型。
2.        为以下几个变量指定数据类型,填写在括号中。
99( Byte )、"上海码头"( String )、True( boolean )、-23.58( Single )、99999( Long )、#2/28/2013#(        Date )、"459" ( String )、=128*6( Variant )

3.        对对象变量赋值和数据变量赋值的区别何在?
答:对对象变量赋值用Set方法,例如:Set rng =Range("A1"),对数据变量赋值用Let方法,例如:Let B =1,也可以是 B =1
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  不能将一个变量值赋值给一个常量变量。
Dim Sheet1 As Range
Set Rng = Worksheet(1) 应该是Worksheets
dim STr as String = 112 数值型数据不能赋值给字符串型变量
Const Tim As Date = "#2013/8/9 14:59:80#" 类型不匹配

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:正确定义变量名称可以使程序的可读性更强,而定义正确的数据类型有助于程序性能的提升,有的时候可以帮助查找错误的来源。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:MsgBox对象的第一个参数必须是一个字符串表达式,可以在500 * 500 两边各加"号可以解决即
MsgBox ”500 * 500“
7.如何识别变量的类型?
答:使用函数TypeName(varname)
45楼
xiaociwei2012
QQ名为:国务卿 609349093

1.        详述为什么要区分数据类型?
答:数据类型决定变量的占用空间及变量类型,用合理的数据类型定义变量可以使程序具有更好的执行效率;
不同的数据在内存中占用的空间不同,运算方式也不同。VBA通过数据类型这个概念将它们加以区分,并在调用数据的时候采用适合该数据的方式,使得数据的存储于运算都采用最佳的方式,避免浪费空间及降低效率。

2.        为以下几个变量指定数据类型,填写在括号中。
99(  Byte    )、"上海码头"(  String   )、True(   Boolean    )、-23.58(  Signal   )、99999( Long  )、#2/28/2013#(   Date  )、"459" (  Integer  )、=128*6(      )

3.        对对象变量赋值和数据变量赋值的区别何在?
答:对象变量是代表一个对象,而不是内存中的一个值。数据变量赋值为内存中的一个值。
对象变量赋值方式为:
Let方法:用于对对象以外的变量赋值,是可选参数;
Set方法:对对象变量进行赋值,是必选参数。

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value    Range("a1").Value是变量
Dim Sheet1 As Range    Range不属于变量类型
Set Rng = Worksheet(1)   应该是 Worksheets("1")
dim STr as String = 112  不能把常量给一个变量赋值
Const Tim As Date = "#2013/8/9 14:59:80#"    Const 只用来定义常量

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:提升效率;防止错误。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:VBA将表达式“500*500”中第一个500识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。超出范围。
修改为:MsgBox Clng(500) * 500

7.如何识别变量的类型?
采用 Typename函数
46楼
123joki
Superforum
47楼
黑蔓巴
1.        详述为什么要区分数据类型?
      VBA要处理的数据很多,为了高效地管理这些数据,VBA中定义了多种数据类型,并将不同的数据分配给不同的数据类型。数据类型表明了数据以何种方式储存于内存中,在编程时可以根据实际情况调用合适的数据类型,合理地区分数据类型有利于提升程序的执行效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99( byte )、"上海码头"(string)、True(boolean)、-23.58( double )、99999(integer )、#2/28/2013#(date)、"459" (string) =128*6(integer)
3.        对对象变量赋值和数据变量赋值的区别何在?
对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value ----dim a as string
a= Range("a1").Value      
Dim Sheet1 As Range -----Dim  rng as  range
Set Rng = Worksheet(1) -----set  rng =range("a1")
dim STr as String = 112----dim str as string
Str=112
Const Tim As Date = "#2013/8/9 14:59:80#"-----Const tim ="#2013/8/9 14:59:80#"
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
VBA变量最好事先定义,以明确变量的数据类型。但是如果没有对变量进行定义,VBA就默认为可变的数据类型(Variant)。系统会自动检测,判断变量在程序中的数据类型。不定义变量的好处是可以不必考虑变量应当定义为什么数据类型,很方便;不好之处是会额外占用一些内存空间并影响程序的执行速度。例如,要保存诸如班级学生总数这样的小数字,那么Byte数据类型就足够了。在这种情况下,使用Single数据类型只是对计算机存储空间的浪费,降低运行效率。而正确定义变量对于简化代码及其录入速度,而且可以大大提高代码的运行效率
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500   因为VBA将计算结果预先设置为表达式中第一个数值的数据类型Integer,但500*500=250000实际计算结果超过了Integer的最大范围.可以修改为:MsgBox 500 * 500------- MsgBox CLng(500) * 500 或 Msgbox worksheetfunction.product(500,500)
7.如何识别变量的类型?
可以用TypeName函数来判断一个数据或者变量的数据类型,使用TypeName 函数时,返回一个 String,提供有关变量的信息..
48楼
老固
VBA第9课作业
1.        详述为什么要区分数据类型?
答:不同的数据在内存中占用的空间是不同的,其运算方式也是不同的。VBA通过数据类型这个概念将它们加以区分,并在调用数据时采用适合该数据的方式,从而使数据的储存与运算都采用最佳的方式,避免浪费空间及降低效率。
将数据采用不同数据类型来管理和调用,会提升代码的运行效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99(  Byte    )、"上海码头"(  String   )、True(    Boolean   )、-23.58(  Single   )、99999(  Long    )、#2/28/2013#(   Date    )、"459" (   String   )、=128*6(   Integer   )

3.        对对象变量赋值和数据变量赋值的区别何在?
答:对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
应为: Const aa As String=1
Dim Sheet1 As Range变量名称不能与VBA的保留字一致。
Set Rng = Worksheet(1)
应为:Set Rng = Range("a1")
dim STr as String = 112
应为:Conts STr as String = “112”
Const Tim As Date = "#2013/8/9 14:59:80#"
应为:Const Tim As String = "#2013/8/9 14:59:80#"
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:1.声明变量,提升效率
2.声明变量,防止错误
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:VBA将表达式“500*500”中第一个500识别为Integer型,同样也把表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为250000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以导致执行失败,提示“溢出”。应该采用数据转换函数用于预防上述问题。应改为MsgBox CLng(500) * 500
7.如何识别变量的类型?
答:采用TypeName函数用于识别数据类型。
49楼
smlee
1.        详述为什么要区分数据类型?
答:数据类型的存在价值在于分类管理数据,换言之,数据类型表明了数据以何种方式储存于内存中,在编程需要时根据实际情况调用合适的数据类型。数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。VBA会自动根据数据的大小分配数据类型,它有时会分配失误。

2.        为以下几个变量指定数据类型,填写在括号中。
99(byte      )、"上海码头"(string     )、True( boolean      )、-23.58(  single   )、99999(   long   )、#2/28/2013#( date  )、"459" (  string    )、=128*6(  string  )

3.        对对象变量赋值和数据变量赋值的区别何在?
对象变量赋值用 set
例如: set rng=[a1]
数据变量赋值使用 let(一般情况下可省略)
例如:let myStr=”hello world!”
     也可以写作
      myStr=”hello world!”

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value        ‘常数变量只能用常数来附值
Dim Sheet1 As Range        ‘sheet1是系统保留字,不能用作变量名称
Set Rng = Worksheet(1) ‘worksheet不是一个集合,后面不能带序号。Worksheets才可以。
dim STr as String = 112        ‘变量不能在定义的时候直接附值
Const Tim As Date = "#2013/8/9 14:59:80#"        ‘日期不需要用双引号,而且秒数也没有80

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同,VBA采用数据类型将它们分类管理。数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。没有变量的VBA程序只能实现简单的需求,执行很规范的数据运算,而实际工作中有太多不规则的、不可预料的操作对象和操作需求,通过变量可以对一些未知的对象或者数据执行操作,让程序代码有更广阔的应用前景。



6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
答:因为VBA会自动识别和分配数据“它”认为最合适的存储空间,上面的例子,500是大于 -32768小于32767的整数,所以VBA会默认它的数据类型为Integer,当500*500超出了Integer这个类型的范围时,就会出现溢出的错误警告。
解决办法是改为 msgbox CLng(500)*500 把其中一个值转换为长整型,得到更大的数据存储空间。由以上例子还可以得出,VBA在运算当中,会以大的存储空间为基准,所以并不需要把两个数据都转变为长整型。

7.如何识别变量的类型?
答:使用函数TypeName(变量名)即可得出变量类型。
例如:
  1. Sub test()
  2.     Dim myStr As String
  3.     MsgBox TypeName(myStr)
  4. End Sub
50楼
嗜金饕餮
一、便天数据管理合理利用存储空间、提高运算速度。

二、以上数据类型分别为 byte 、string 、bealoon、 single 、long 、date 、srting、 公式

三、对象变量赋值只能将对象赋给对象变是不是,赋值时而用用set  而数值变量则是将数字、字符等赋给对象变量

四、 对常量赋值应该为常娄 2、不能用对对象名 "sheet1"为变量名 3 、wordsheets(1)写错成wordsheet(1) 4 、不能对Date 蛮量赋值为string数值

五 、合理利用存储空间、提高程度运行速度

六、因为500属于integer 类型  所以VBA把 500* 500的计算结果 也当成integer 类型,但500*500超出了integer 的范围 所以出错了

51楼
gls08
随心所欲
1.        详述为什么要区分数据类型?
区分数据类型可以让程序采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99(      )、"上海码头"(     )、True(       )、-23.58(     )、99999(      )、#2/28/2013#(       )、"459" (      )、=128*6(      )
99( byte)、"上海码头"(string)、True(boolean)、-23.58(single)、99999(long)、#2/28/2013#(date)、"459" (string)、=128*6(string)
3.        对对象变量赋值和数据变量赋值的区别何在?
对象变量用于表示对象,只能将对象赋值给对象变量,而不能将字符串或者数值赋值给对象变量。
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value      const语句是声明用于代替文字量的常数,而不是变量
Dim Sheet1 As Range   变量名称不能与工作表名称相同,以发生混淆
Set Rng = Worksheet(1)   worksheet是对象,是对象变量类型的一种,要赋值rng第一个工作表要用工作表集合中的第一个,即 Set rng = Worksheets(1)
dim STr as String = 112    定义变量类型时不能赋值
Const Tim As Date = "#2013/8/9 14:59:80#"   类型不匹配,加双引号为字符型,不是时间
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
(1)编程时提升速度。定义好变量按下快捷键ctrl+J 就会出现变量名,按下空格键即可,如果不定义变量,手工录入又慢又容易出错。正确声明变量与数据类型,会自动提示变量的属性和方法
(2)声明变量可以帮助纠错。声明变量时采用大小写相间的形式,书写时全用小写,正确则自动修改大小写,与声明时的状态匹配。正确声明变量与数据类型,会自动提示变量的属性和方法
(3)未正确声明变量有时环境变化导致程序出错。
(4)提升程序运行速度。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
因为VBA将表达式“500*500”中第一个500识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为250000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以最终导致执行失败,提示“溢出”。解决问题的方法是将表达式的第一个值转换成更大的数据类型即可,即MsgBox CLng(500) *500
7.如何识别变量的类型?
利用TypeName函数,TypeName (变量名)
52楼
无言的人
无言的人
  1. 1. 详述为什么要区分数据类型?
  2. 答:1、可以减少不必要的内存占用;2、明确各变量的使用性质及范围确认;3、方便发现错误,纠错
  3. 2. 为以下几个变量指定数据类型,填写在括号中。
  4. 99(Byte)、"上海码头"(String)、True(Boolean)、-23.58(Double)、99999(Long)、#2/28/2013#(Date)、"459" (String)、=128*6(Integer)
  5. 3.对对象变量赋值和数据变量赋值的区别何在?
  6. 答:对象变量必须使用 Set 语句进行赋值,数据变量只需简单的用 变量名称=**值即可。
  7. 4.下面的5句代码出错的原因是什么?
  8. Const a As String = Range("a1").Value                需要一个表达式,而非引用某个对象或数据。
  9. Dim Sheet1 As Range                                                        占用了系统内置的名称。
  10. Set Rng = Worksheet(1)                                                错误的赋值变量对象,应该为工作表对象或单元格对象,而非指定某个工作表。
  11. dim STr as String = 112                                                符号采用错误,如果想该变量保留占用112个空白符号字节的话,必须将= 换为 * 即可,如果不是直接将后面的表达式删除。
  12. Const Tim As Date = "#2013/8/9 14:59:80#"        最后的秒错误了,大于59秒了,并将双引号去了,日期格式不需要。
  13. 5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
  14. 答:1、提升可预见的计算速度;2、犯错纠错,方便易见。
  15. 6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
  16. MsgBox 500 * 500
  17. 答:两数乘积已超过整形变量的最大值,修改为长整形的:MsgBox CLng(500) * 500
  18. 7.如何识别变量的类型?
  19. 答:采用内置类型判断函数TypeName(varname)
53楼
lene
  lene_第九课作业

1.        详述为什么要区分数据类型?
给数据定义一个类型,就相当于给繁多的数据分类,就像电脑,有电影、音乐、图片、文档等各种东西,当我们盘里的东西多了,桌面上的东西多了,看起来会眼花缭乱,查找的时候也会特别费力,当我们适当的新建文件夹,分门别类的存储各种文件后,这样优化了桌面空间,同时又能快速查找,提高效率

2.        为以下几个变量指定数据类型,填写在括号中。
99(  byte    )、"上海码头"(string     )、True(   boolean    )、-23.58(  double   )、99999(   long   )、#2/28/2013#(   date    )、"459" ( integer     )、=128*6(    integer )


3.        对对象变量赋值和数据变量赋值的区别何在?
1)、对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set
对数据变量赋值:dim a as byte
                             a=5
对对象变量赋值:dim wt as worksheet
                           set wt=worksheets(1)


2)、对对象变量赋值需要使用Set,但是其后对变量所代表的对象赋值时不再使用Set
Sub 对象变量()
    Dim Rng As Range    '声明一个Range型的对象变量
    Set Rng = Range("a1") '将对象a1单元格赋值给变量Rng
    Rng = Range("a2")    '将A2单元格的值赋值给Rng所代表的单元格(即A2的值复制到A1中)
End Sub


4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value ---const 是定义常量的语句,语法是:   Const 常量名 As 类型=表达式,=号右边不是常量表达式
Dim Sheet1 As Range  ---测试是对的
Set Rng = Worksheet(1)  ---应改为 Set Rng = Worksheets(1)
dim STr as String = 112  ---定义的变量类型与等号右边的表达式不符,112是Byte
Const Tim As Date = "#2013/8/9 14:59:80#"  ---类型不匹配,用variant

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
1)编程中可以提升速度与准确性 a、可以提示变量名称 b、可以弹出快速信息,定义变量正确时会有提示,自动修改大小写

2)执行代码时可以提升效率与准确性  a、调用公共变量时可能会出错 b、环境发生变化时,执行代码会出错 c、执行代码时提速

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
没有定义变量类型,500是byte型,计算结果会预先分配数据类型 byte,结果为250000超出了byte的上限,导致“溢出”;有2种方式可以防止上述错误
1)、转换数据类型:msgbox clng(500)*500
2)、使用函数:MsgBox WorksheetFunction.Product(500, 500)

7.如何识别变量的类型?
使用  typename
54楼
bidededede
有些还是不会做,请老师谅解,希望 明天老师能先讲下作业答案。
心跳づ合奏.rar
55楼
Jerrylam
QQ:66811112   昨夜長風
1.        详述为什么要区分数据类型?

2. 为以下几个变量指定数据类型,填写在括号中。
99(byte )、"上海码头"(string )、True(Boolean )、-23.58(single )、99999(long )、#2/28/2013#(variant )、"459" (string )、=128*6(variant)

3. 对对象变量赋值和数据变量赋值的区别何在?
对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句

4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
constr函数的Expreession 是文字或常数,不能为变量。Range("a1").Value不符合。
Dim Sheet1 As Range
不能将工作表名称作为变量名
Set Rng = Worksheet(1)
没有定义worksheets(1)属性
dim STr as String = 112
dim 声明变量,声明常量可以  const str  as string =112
Const Tim As Date = "#2013/8/9 14:59:80#"

5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
提升效率、防止执行时发生的错误
6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
原因:VBA将计算结果预先设置为表达式中第一个数值的数据类型Integer,但实际计算结果超过了Integer的最大范围
MsgBox WorksheetFunction.Product(500,500)
7.如何识别变量的类型?
___用TYPENAME进行判断_____
56楼
eric2345
入门教学群 江苏-eric 交第九课数据类型作业
江苏-eric - 第9课 课后作业.rar
57楼
暗香盈袖
我的作业
暗香盈琇-第九课作业.zip
58楼
健康快乐123
006:水上漂123
1.        详述为什么要区分数据类型?
数据类型的存在价值在于分类管理数据,换言之,数据类型表明了数据以何种方式储存于内存中,在编程需要时根据实际情况调用合适的数据类型。每一个数据类型都有一个独有的数据名称,该名称表明了数据有效范围如果当前需要处理的数据是0分到100分的成绩,那么适合采用Byte型,若采用Integer型就浪费空间了。在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同,VBA采用数据类型将它们分类管理。数据类型的存在目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。在VBA中使用数据类型来整理数据,其目的是优化管理方式,提升工作效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99( byte)、"上海码头"(string )、True(boolean)、-23.58(single  )、99999(long)、#2/28/2013#(   date    )、"459" (   string   )、=128*6(  long    )

3.        对对象变量赋值和数据变量赋值的区别何在?
对对象变量赋值时要用set,数据变量赋值时不用set,直接用等号
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value 数据类型不同
Dim Sheet1 As Range 不能用系统的关键字
Set Rng = Worksheet(1) 应该是worksheets(1)
dim STr as String = 112 文本不能等于数值
Const Tim As Date = "#2013/8/9 14:59:80#"
5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
通过定义有意义的变量名称,可以提升代码的可阅读性,通过变量名称可以看出变量的数据类型或变量所代表的对象;正确的定义数据类型可以提高代码的执行效率。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
因为vba代码将500识别为integer,而500*500的结果超过了integer的上限,所以溢出产生错误。
7.如何识别变量的类型?
用TypeName()函数可以判断
59楼
天天向上up
ID:879601550(湖南-布吉岛)

1.不同的数据类型限制了各个变量所能存储的值,适当的声明数据类型可以提高程序代码的执行速度,更可以节省不必要的内存浪费。


2. 99(byte)、"上海码头"(string)、True(boolean)、-23.58(single)、99999(long)、#2/28/2013#(date)、"459"(string)、=128*6(integer)


3.对象变量赋值是对对象的属性赋值,用set语句;数据变量赋值是直接对定义变量的数据类型并进行赋值,用let语句(let可省略)


4. Const a As String = Range("a1").Value       
        const限定了变量a不容许改变,需要对a赋常值,但是Range("a1").Value不是常值表达式;
        把const改成dim,或者把range("a1").value改成常量
Dim Sheet1 As Range       
        sheet1是excel默认分配的表单名,用来做单元格区域名称不恰当
        把sheet1换成range1之类的
Set Rng = Worksheet(1)       
        对象worksheet用法不对,worksheet是工作表对象.worksheets是工作表集合对象.前者代表单个工作表,后者代表所有
工作表的集合
dim STr as String = 112       
        变量定义的时候不能直接赋值;
        把dim 改成const,或者把赋值语句拆分成两句: dim STr as String  和   STr = 112
Const Tim As Date = "#2013/8/9 14:59:80#"       
        赋值的格式不对,""和##重复且赋值不对,
        去掉双引号或者#号,删掉时间和空格


5.如果不对数据进行定义,如题2中的99,系统默认分配的数据类型是integer、-23.58分配的是double,都比其实际类型长,系统资源浪费;
而错误的定义变量与数据类型可能会导致溢出、函数未定义等错误,正确定义变量的数据类型可以以提高程序代码的效率和节省不必要的内存浪费。


6.500是整型,系统默认分配给500*500的范围也是整型,但是结果250000超过了整型的范围,所以要先转换数据类型。
msgbox clng(500)*500   或  msgbox 500@*500  或  msgbox 500#*500


7.用typename函数可以检查数据类型,未做类型定义的变量检测出来的是系统默认分配的类型;另外,也可根据数据类型的定义来大致识别。


60楼
jsrgsunny
听课群的昵称:江苏-阳光明媚
老师好!我对于VBA一点基础都没有,作业只能简单的回答,请罗老师多指教!
1. 详述为什么要区分数据类型?
答:因为在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同,VBA采用数据类型将它们分类管理。也就是说采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。其主要目的是优化管理方式,提升工作效率。

2. 为以下几个变量指定数据类型,填写在括号中。
99( Byte )、"上海码头"( String )、True( Boolean)、-23.58( Double )、99999( Long)、#2/28/2013#( Date )、"459" ( String )、=128*6( Integer )

3.  对对象变量赋值和数据变量赋值的区别何在?
答:对象变量用于表示对象,只能将对象赋值给对象变量,而不能将字符串或者数值赋值给对象变量。对数据变量赋值直接使用等号即可,而对对象变量赋值需要使用Set语句。

4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value    const是声明常量,String是指字符串,=后面的不是
Dim Sheet1 As Range        Dim 是声明变量,sheet1错
Set Rng = Worksheet(1)       Worksheet(“1”)
dim STr as String = 112        112是Byte,不是String
Const Tim As Date = "#2013/8/9 14:59:80#"    "#2013/8/9 14:59:80#"不是date

5.  详细分析在编程过程中正确定义变量与数据类型有哪些优势。
答:在VBA中,变量主要有三个用途:一是简化代码。如果某个对象或者表达式在一个Sub过程或者多个Sub过程中多次出现,而该表达式或者对象的代码很长,那么可以定义一个更短且有意义的名称来取代它。二是提高速度。变量是将值存入内存中,而VBA读取任何对象的属性值或者计算一个表达式的速度都会远远长于读取内存中数据的时间。正是基于这个特点,当某个对象来表达式多次出现时,尽量使用变量来完成。三是循环执行。在循环语句中必须使用变量,否则无法执行。而循环语句是VBA的各种语句中使用率最高的语句。

6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
因为VBA将表达式“500*500”中第一个500识别为Integer型,同时也将表达式的计算结果预先分配相同的数据类型Integer。而事实上表达式的计算结果为250000,Integer的上限是32767,由于计算结果超过了Integer数据类型的上限,所以最终导致执行失败,提示“溢出”。
可改为MsgBox CLng(500) * 500
或者MsgBox WorksheetFunction.Product(500, 500)

7.如何识别变量的类型?
答:可以使用TypeName函数判断
61楼
罗刚君
提示:此题目是“VBA入门免费教学群”(群号:30729794)的课后作业
请未参与听课者绕道,谢谢配合。

________________________________________________________
1.        详述为什么要区分数据类型?

2.        为以下几个变量指定数据类型,填写在括号中。
99(      )、"上海码头"(     )、True(       )、-23.58(     )、99999(      )、#2/28/2013#(       )、"459" (      )、=128*6(      )

3.        对对象变量赋值和数据变量赋值的区别何在?

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500

7.如何识别变量的类型?
_____________________________________________________
补充:“VBA入门免费教学群”(群号:30729794)每周三上课一次,有兴趣者皆可报名,永远免费。
请提交作业时注明在免费听课群的昵称。三次不交作业者,将踢出群,让出空间让更多的人进来听课,请大家配合。
62楼
NULL
1.        详述为什么要区分数据类型?
不同的数据类型占用不同的内存空间,区分不同的数据类型,有利于提高程勋运行效率。
2.        为以下几个变量指定数据类型,填写在括号中。
99(   byte   )、"上海码头"(string   )、True( Boolean   )、-23.58(  singgle   )、99999(long      )、#21/28/2013#(  date     )、"459" (     ingter )、=128*6(  ingter    )

3.        对对象变量赋值和数据变量赋值的区别何在?
对象用 set  变量 = 对象
数据变量 let 变量=数据 (let可以省略)
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value   ‘常量的值是固定的,不能赋予单元格的值给常量。
Dim Sheet1 As Range  ‘sheet1虽然可以使用,但是sheet1将不能再表示名称为sheet1的工作簿,
Set Rng = Worksheet(1) ’应使用worksheets(1)
dim STr as String = 112    ’变量不能在定义时赋值
Const Tim As Date = "#2013/8/9 14:59:80#"  ’ 1不需要双引号,2且时间的部分的秒超过了60,不符规定。

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
  (1)使用变量加快程序运行效率
  (2)正确的类型方便计算,减少出错

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
500 系统分配的数据类型为ingter。此类型最大值为3万多。而两数相乘为25万,超出了ingter的范围。
msgbox clng(500)*500

7.如何识别变量的类型?
利用typename函数。
63楼
tchsong
T t 作业于word文档中
9课作业.rar
64楼
kouhogliang
1.        详述为什么要区分数据类型?
每个数据类型都有各自的有效范围
2.        为以下几个变量指定数据类型,填写在括号中。
99(   Byte   )、"上海码头"(    Variant )、True(    Boolean   )、-23.58( Single    )、99999(   Integer   )、#2/28/2013#(     date  )、"459" (     Variant   )、=128*6(   Variant     )

3.        对对象变量赋值和数据变量赋值的区别何在?
   
4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value
Dim Sheet1 As Range
Set Rng = Worksheet(1)
dim STr as String = 112
Const Tim As Date = "#2013/8/9 14:59:80#"

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
在VBA中使用数据类型来整理数据,其目的是优化管理方式,提升工作效率。
6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
溢出 改为 msgbox WorksheetFunction.Product(500, 500)
7.如何识别变量的类型?
每个数据类型都有各自的有效范围 对照表1
65楼
玉丫头
1. 详述为什么要区分数据类型?
在VBA中,不同大小的数据在内存中的占用空间是不同的,运算方式也不同。区分数据类型的目的就是采用最适合的方式管理数据,从而避免空间浪费,也能提高代码的执行效率。
2. 为以下几个变量指定数据类型,填写在括号中。
99(Byte)、"上海码头"(String)、True(Boolean)、-23.58(Single)、99999(Integer)、#21/28/2013#( Date)、"459" (String)、=128*6(Variant )

3. 对对象变量赋值和数据变量赋值的区别何在?
对对象变量赋值要用SET语句,对数据变量赋值直接使用等号即可。
4. 下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value        声明常数时,后面的= expression只能是常数表达式
Dim Sheet1 As Range        变量名称和VBA中的保留字一致
Set Rng = Worksheet(1)                应是对象集合Worksheets(1)
dim STr as String = 112                变量类型和赋值矛盾
Const Tim As Date = "#2013/8/9 14:59:80#"                类型不匹配,声明的是日期类型,赋值是时间(小数)

5. 详细分析在编程过程中正确定义变量与数据类型有哪些优势。
变量通常用于代替一个未知数,我们可以在程序中对这个未知数执行操作。变量还有简化录入工作、提升程序效率的作用(变量保存在内存中,读取内存中的变量速度快)。
6. 说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500
改为:MsgBox CLng(500) * 500
7.如何识别变量的类型?
应养成声明变量的习惯,默认声明的变量是变体型。
66楼
csppglass
江苏0基第九课作业.rar

请罗老师查收!
67楼
杭州小菜02
1.        详述为什么要区分数据类型?
1,避免出错,2,提升速度; 3,方便错误查找和代码维护
2.        为以下几个变量指定数据类型,填写在括号中。
99(byte)、"上海码头"( string)、True(   boolean  )、-23.58(   double  )、99999(  long    )、#2/28/2013#(     date  )、"459" (  integer    )、=128*6(  sting     )

3.        对对象变量赋值和数据变量赋值的区别何在?

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  :const是声明一个常数,不是引用的        
Dim Sheet1 As Range  :使用了关键字
Set Rng = Worksheet(1)  :set是用来给变量赋值对象引用的,不是赋值常量
dim STr as String = 112   :数据类型错误
Const Tim As Date = "#2013/8/9 14:59:80#"  数据类型错误

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500   
溢出错误,如果是要计算结果,需要先声明一个正确的变量


7.如何识别变量的类型?
F1或者百度
68楼
hunt
QQ ID hehex 第9课作业 -请参考附件Word 文档。

hehex 第9课作业.zip
69楼
zhufree
1.        详述为什么要区分数据类型?
         提高运行效率,减少内存占用

2.        为以下几个变量指定数据类型,填写在括号中。
99( BYTE)、
"上海码头"(STRING     )
True( BOOLEAN      )
-23.58( SINGLE )
99999(LONG      )
#2/28/2013#( DATE)
"459" (    STRING  )
=128*6(      )                    -------------请指导

3.        对对象变量赋值和数据变量赋值的区别何在?
           对象变量赋值必须SET赋值,数据变量可以直接=赋值

4.        下面的5句代码出错的原因是什么?
Const a As String = Range("a1").Value  CONST定义常量类型   
Dim Sheet1 As Range   关键字是保留字
Set Rng = Worksheet(1)    WORKSHEETS,对象组应加S
dim STr as String = 112     常量类型赋值用CONST
Const Tim As Date = "#2013/8/9 14:59:80#"   日期型无需""包含

5.        详细分析在编程过程中正确定义变量与数据类型有哪些优势。
       提高执行效率,及利用变量引用较长的内容时减少输入错误

6.        说明以下代码为什么会出错?如何修改代码让它不再出错?
MsgBox 500 * 500   程序执行结果超过系统识别的INT数据类型,可加CLNG函数修正或用工作表函数执行


7.如何识别变量的类型?
   TYPENAME函数



群名:福瑞
70楼
水云寒
1 区分数据类型能防错、提高执行效率、提高代码输入准确度
2 99(  byte )、"上海码头"( string  )、True( boolean  )、-23.58( single   )、99999(   long   )、#2/28/2013#(  date     )、"459" ( string  )、=128*6(  integer  )
3
4 1 const赋值不能修改,当A1的值到a时会变动
  2 sheet1 是系统内置的,不能作为变量名字
  3
  4 string为字符串变量,不能处理数值
  5 date是日期,不能处理时间
5 正确定义变量和数据类型能加快程序运行速度,
6 第一次出现500时,是integer类型,乘以500后,结果为250000超出了integer的范围
7 通过TypeName函数识别变量类型

免责声明

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

评论列表
sitemap