VBA

Private Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Sub MySub()
Range("A1").Resize(2, 3).Select
End Sub
Sub 成績()
If Range("A2") = 100 Then
 MsgBox "買電腦"
ElseIf Range("A2") >= 90 Then
 MsgBox "買筆"
ElseIf Range("A2") >= 60 Then
 MsgBox "買其它"
Else
 MsgBox "要打"
End If
End Sub

Sub KK()
 Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數變數;sht 為excel工作表物件變數,指向某一工作表
    'Dim cn As New ADODB.Connection '定義資料鏈接物件 ,保存連接資料庫資訊;請先添加ADO引用
    'Dim rs As New ADODB.Recordset  '定義記錄集物件,保存資料表
    Set rs = CreateObject("ADODB.Recordset")
    Set cn = CreateObject("ADODB.Connection")
    'Dim cm As New ADODB.Connection
    Dim strCn As String, strSQL As String '字串變數
    strCn = "Provider=sqloledb;Server=.;Database=zyluxinfo;Uid=sa;Pwd=741852;"    '定義資料庫鏈結字串"
    '下面的語句將讀取資料表資料,並將它保存到excel工作表中:畫兩張表想像一下,工作表為一張兩維表,記錄集也是一張兩維表
    strSQL = "SELECT * FROM tEmployee WHERE empid<='000100'" '定義SQL查詢命令字串
    cn.Open strCn   '與資料庫建立連接,如果成功,返回連接物件cn
    rs.Open strSQL, cn  '執行strSQL所含的SQL命令,結果保存在rs記錄集物件中
    i = 1
    'Set sht = ActiveWorkbook.Worksheets("sheet1")   '把sht指向當前工作簿的sheet1工作表
    Do While Not rs.EOF     '當資料指標未移到記錄集末尾時,迴圈下列操作
        Sheet1.Cells(i, 1) = rs("empid")    '把當前記錄的欄位1的值保存到sheet1工作表的第i行第1列
        Sheet1.Cells(i, 2) = rs("empName") '把當前欄位2的值保存到sheet1工作表的第i行第2列
        rs.MoveNext                      '把指標移向下一條記錄
        i = i + 1                        'i加1,準備把下一記錄相關欄位的值保存到工作表的下一行
    Loop                                 '迴圈
    rs.Close   '關閉記錄集,至此,程式將把某資料表的欄位1和欄位2保存在excel工作表sheet1的第1、2列,行數等於資料表的記錄數
    cn.Close


End Sub

 


Private Sub Worksheet_Change(ByVal Target As Range)
   ' MsgBox Sheet1.Cells(Target.Row, Target.Column).Value
    Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數變數;sht 為excel工作表物件變數,指向某一工作表
    Set rs = CreateObject("ADODB.Recordset")
    Set cn = CreateObject("ADODB.Connection")
    'Dim cm As New ADODB.Connection
    Dim strCn As String, strSQL As String '字串變數
    strCn = "Provider=sqloledb;Server=.;Database=zyluxinfo;Uid=sa;Pwd=741852;"    '定義資料庫鏈結字串"
    '下面的語句將讀取資料表資料,並將它保存到excel工作表中:畫兩張表想像一下,工作表為一張兩維表,記錄集也是一張兩維表
    strSQL = "SELECT * FROM tEmployee WHERE empid='" & Sheet1.Cells(Target.Row, Target.Column) & "'" '定義SQL查詢命令字串
    cn.Open strCn   '與資料庫建立連接,如果成功,返回連接物件cn
    rs.Open strSQL, cn  '執行strSQL所含的SQL命令,結果保存在rs記錄集物件中
    i = 1
    'Set sht = ActiveWorkbook.Worksheets("sheet1")   '把sht指向當前工作簿的sheet1工作表
    Do While Not rs.EOF     '當資料指標未移到記錄集末尾時,迴圈下列操作
        'sht.Cells(i, 1) = rs("empid")    '把當前記錄的欄位1的值保存到sheet1工作表的第i行第1列
        Sheet1.Cells(Target.Row, Target.Column + 1) = rs("empName") '把當前欄位2的值保存到sheet1工作表的第i行第2列
        rs.MoveNext                      '把指標移向下一條記錄
        'i = i + 1                        'i加1,準備把下一記錄相關欄位的值保存到工作表的下一行
    Loop                                 '迴圈
    rs.Close   '關閉記錄集,至此,程式將把某資料表的欄位1和欄位2保存在excel工作表sheet1的第1、2列,行數等於資料表的記錄數
    cn.Close
End Sub

'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'MsgBox Sheet1.Cells(ActiveCell.Row, ActiveCell.Column)
   
'End Sub

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值