VBA练习题
1.执行程序后,将B,C,D列非空行的A列值设为1
Sub test()
Intersect(Columns(1), Range("B:D").SpecialCells(xlCellTypeConstants).EntireRow) = 1
End Sub
详解:
Columns(1)表示工作表的第1列
Range("B:D")这个表示B:D列的区域
SpecialCells(xlCellTypeConstants)这个是range的一个方法(详见帮助中Range.SpecialCells方法),作用是选择某一类型的所有单元格,其中xlCellTypeConstants指定类型为常量,返回值类型也为range
.EntireRow表示一整行
Range("B:D").SpecialCells(xlCellTypeConstants).EntireRow整体意思就是在B:D列里选择含有常量的整行(这些常量表示直接输入单元格里的数据,包括数值,文本等,不含公式)
Intersect方法表示参数区域的重叠区域,即包含常量数据的整行和工作表第一列的交叉区域,也就是所有包含常对应行的A列单元格
最后=1,全部赋值为1
2.VBA连接sql_server
Sub test() Set conn = CreateObject("adodb.connection") '无需变更 conn.Open "Driver=SQL Server;SERVER=localhost;Database=mydatabase1;uid=sa;pwd=dhc3b@dhc" 'localhost为数据库ip地址,dbname为数据库名称,name为用户名,password为密码 If conn.State = 1 Then '无需变更 MsgBox "数据库连接无异常!" '检查语句,可删除 sqll = "select * from dbo.db_book " '查询语句,按实际需求变更 Set rs1 = conn.Execute(sqll) '无需变更 Range("E1").CopyFromRecordset rs1 '数据库查询结果将在 lie 列 hang 行开始展示 End If '无需变更 End Sub