VB調用Excel簡化表格處理
發表于:2007-07-14來源:作者:點擊數:
標簽:
---- VB程序中直接調用Excel的格式如下: Private Sub menudy_Click(Index As Integer) \這是一個打印菜單 Select Case Index Case 0 On Error GoTo kung aaa = Shell(“D:Program FilesMicrosoft OfficeOfficeEXCEL.EXE c:cnglcngl.xls, 1) Case 1 On Error
---- VB程序中直接調用Excel的格式如下:
Private Sub menudy_Click(Index As Integer)
\這是一個打印菜單
Select Case Index
Case 0
On Error GoTo kung
aaa = Shell(“D:Program FilesMicrosoft
OfficeOfficeEXCEL.EXE c:cnglcngl.xls", 1)
Case 1
On Error GoTo kong \作為空表處理
aaa = Shell(“D:Program FilesMicrosoft
OfficeOfficeEXCEL.EXE c:cnglcngly.xls", 1)
Case 3
Case 4
Case 5
End Select
Exit Sub
kung:
aaa = Shell(“EXCEL.EXE c:cnglcngl.xls", 1)
Exit Sub
kong:
aaa = Shell(“EXCEL.EXE c:cnglcngly.xls", 1)
End Sub
----由于Word97和Excel97等高版本的Office組件都有和VB 的接口:VB 編輯器,所以我們可以直接利用 VB 編輯器編寫我們需要的程序。步驟如下:進入Excel97后,用鼠標點擊菜單欄中的“工具”按鈕,選擇“宏”,再選擇“VB 編輯器”。
----“VB編輯器”的編輯界面非常類似于“Visual Basic"的界面。我們可以從它的控件“工程資源管理器”中插入需要的“添加用戶窗體、添加模塊、添加類模塊”,并且從“屬性窗口”中加入屬性。
----例如,我們可以制定一個打印窗體,通過程序來實現數據定位和循環調用打印過程。
Public panduan As Boolean
Private Sub CommandButton1_Click()
change
If panduan Then
Unload Me
Else
TextBox1.Text = “"
End If
End Sub
Sub change()
If Not judgeday(TextBox1.Text) Then GoTo error
panduan = True
Dim sql As String
Dim db As Database
Dim rs As Recordset
sql = “SELECT * From 數據表"
sql = sql + “ WHERE (((數據表.日期)=
#" + TextBox1.Text + “#))"
Setdb =OpenDatabase(Application.ThisWorkbook.Path
+“cngl.mdb")
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
If rs.EOF Then
MsgBox (“此日期無數據")
Exit Sub
End If
daima1 = rs.Fields(“代碼")
Sheet1.Range(“e5").Value = rs.Fields(“日期")
Sheet1.Range(“f7").Value = rs.Fields(“數據表記錄")
Sheet1.Range(“d13").Value = rs.Fields(“整數100")
Sheet1.Range(“d15").Value = rs.Fields(“整數50")
Sheet1.Range(“d17").Value = rs.Fields(“整數10")
Sheet1.Range(“d19").Value = rs.Fields(“整數5")
Sheet1.Range(“d21").Value = rs.Fields(“整數2")
Sheet1.Range(“d23").Value = rs.Fields(“整數1")
Sheet1.Range(“h13").Value = rs.Fields(“其他100")
Sheet1.Range(“h15").Value = rs.Fields(“其他50")
Sheet1.Range(“h17").Value = rs.Fields(“其他10")
Sheet1.Range(“h19").Value = rs.Fields(“其他5")
Sheet1.Range(“h21").Value = rs.Fields(“其他2")
Sheet1.Range(“h23").Value = rs.Fields(“其他1")
Sheet1.Range(“d37").Value = Sheet1.Range
(“d13").Value * 100 + Sheet1.Range(“d15").
Value * 50 + Sheet1.Range(“d17").Value * 10 +
Sheet1.Range(“d19").Value * 5 + Sheet1.Range
(“d21").Value * 2 + Sheet1.Range(“d23").Value
Sheet1.Range(“h37").Value = Sheet1.Range
(“h13").Value * 100 + Sheet1.Range(“h15").
Value * 50 + Sheet1.Range(“h17").Value * 10 +
Sheet1.Range(“h19").Value * 5 + Sheet1.Range
(“h21").Value * 2 + Sheet1.Range(“h23").Value
Dim sql1 As String
Dim db1 As Database
Dim rs1 As Recordset
sql1 = “SELECT * From 代碼字典"
sql1 = sql1 + “WHERE (((代碼字典.代碼)=
" & daima1 & “))"
Setdb1 =OpenDatabase(Application.ThisWorkbook.Path
+ “cngl.mdb")
Set rs1 = db1.OpenRecordset(sql1, dbOpenDynaset)
Sheet1.Range(“h41").Value = rs1.Fields(“代碼字典名稱")
Exit Sub
error:
MsgBox (“日期輸入錯誤")
panduan = False
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Activate()
dyxjkc.Top = 30
dyxjkc.Left = 230
End Sub
----具體的表格畫線可以由Excel自動完成,因此簡化了VB 編程的步驟,并且節約調試程序和畫線定位的時間。
原文轉自:http://www.anti-gravitydesign.com