Option Explicit
Dim sd, xd, gao
Property Let 上底(a)
sd = a
End Property
Property Let 下底(b)
xd = b
End Property
Property Let 高(c)
gao = c
End Property
Property Get 高()
高 = gao
End Property
Property Get 面积()
面积 = (sd + xd) * gao / 2
End Property
Sub test1()
Dim t1 As New 梯形
With t1
.上底 = 2
.下底 = 3
.高 = 10
MsgBox .高
MsgBox .面积
End With
End Sub
Property Set redCell(rg As Range)
rg.Interior.ColorIndex = 3
End Property
Dim st As New setTest
Sub test()
Set st.redCell = Range("a1:a10")
End Sub
'这是类模块 SheetFunc 的代码
Sub SheetsAdd(str As String)
Dim sht As Worksheet
For Each sht In Sheets
If sht.Name = str Then
k = 1
Exit Sub
End If
Next
Set sht = Sheets.Add
sht.Name = str
End Sub
Function SheetsDel(str As String)
Dim sht As Worksheet
Application.DisplayAlerts = False
For Each sht In Sheets
If sht.Name = str Then
sht.delete
End If
Next
Application.DisplayAlerts = True
End Function
Sub addsht()
Dim sf As New SheetsFunc
sf.SheetsAdd "四月"
End Sub
Sub delsht()
Dim sf As New SheetsFunc
sf.SheetsDel "三月"
End Sub
Option Explicit
Public WithEvents butt As msforms.CommandButton
Private Sub butt_Click()
MsgBox butt.Caption
End Sub
Dim butts(1 To 6) As New EventTest
Private Sub UserForm_Initialize()
For i = 1 To 6
Set butts(i).butt = Me.Controls("CommandButton" & i)
Next i
End Sub
Sub test11()
Set obj = ActiveSheet.OLEObjects("image1").Object
MsgBox obj.BackColor
End Sub
'类模块SubBox代码
Sub red(rg As Range)
rg.Interior.ColorIndex = 3
End Sub
'测试代码
Sub test23()
Dim sb As New SubBox
sb.red Range("a1:b4")
End Sub
'类模块 Funcs 代码
Function aver(rg As Range)
aver = Application.WorksheetFunction.Average(rg)
End Function
Sub test24()
Dim sb As New Funcs
Debug.Print sb.aver(Range("b1:b3"))
End Sub
_
换行Sub test()
Dim conn As New Connection
Dim rst As New Recordset
Dim excelStr, sqlStr As String
' 这里是换行写的
excelStr = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & Excel.ThisWorkbook.Path _
& "\database.xlsm" & ";Extended Properties='Excel 12.0;HDR=YES'"
sqlStr = "select * from [sheet3$]"
conn.Open excelStr
rst.Open sqlStr, conn
Do While Not rst.EOF
Debug.Print rst.Fields("name") & "-" & rst.Fields("age") & "-" & rst.Fields("sex")
rst.MoveNext
Loop
rst.Close
conn.Close
Set rst = Nothing
Set conn = Nothing
End Sub
'返回结果集
Set rs =conn.Execute("SQL 查询语言")
'不返回结果集,但是可以取到语句影响的行数,后面两参数可选,RecordAffected可返回影响行数
conn.Execute "SQL 操作性语句" [,RecordAffected][, Option]
rst.Open sqlStr, conn, 0, 3
rst.AddNew Array("name", "age", "sex"), Array("mike11", 23, "woman")
arr = rst.GetRows(, , Array("name", "age"))
参考资料
- http://www.360doc.com/content/18/0929/17/2548375_790737083.shtml
- https://www.sohu.com/a/238562802_417040
dim conn as new Connection
dim rst as new RecordSet
set conn = createObject("adodb.connection")
set rst= createObject("adodb.recordset")
'连接 sqlserver
sqlserverStr = "Provider=sqloledb;Server=NIKEY-980114BB0;Database=pubs;Uid=sa;Pwd=sa;"
'连接 excel 数据源
excelStr = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & Excel.ThisWorkbook.Path _
& "\database.xlsm" & ";Extended Properties='Excel 12.0;HDR=YES'"
'连接 mysql
mysqlStr = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.1" _
& "139;DB=test;UID=root;PWD=abc;OPTION=3;"
'连接 oracle
oracleStr = "Provider=OraOLEDB.Oracle.1; user id=" & db_user _
& "; password=" & db_pass & "; data source = " & db_sid & "; Persist Security Info=True"