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



原文地址:https://www.cnblogs.com/yanweichen/p/10534440.html