我在引用了几个Excel表的数据好,每次在运行程序结束后,进程里还都留有一个EXCEL.EXE的进程,怎么把它结束掉呢?
我是这么写的:
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlBook = xlApp.Workbooks.Open(SelectedFile)
Set xlSheet = xlBook.Worksheets("Sheet1")
Private Sub Command1_Click()
Dim appexcel As Object
Dim wbmybook As Object
Dim wsmysheet
Dim x As Integer
Dim y As Integer
If Text1.Text <> "" And Text2.Text <> "" Then
x = Text1.Text
y = Text2.Text
Set appexcel = CreateObject("excel.application")
appexcel.Visible = True
Set wbmybook = appexcel.workbooks.Add
Set wsmysheet = appexcel.worksheets.Add
If Text3.Text <> "" Then
wsmysheet.Name = Text3.Text
wsmysheet.cells(x, y) = Text4.Text
Else
MsgBox "名称没有填写!", vbInformation
End If
下面介绍一下实现方法:进入VISUAL BASIC中,建立一个新的窗体。在窗体中加入两个图画盒控件(Picture1和Picture2),设置它们的Name属性为PicSource和PicTarget,并为PicSource图画盒的Picture属性设置一幅位图。再在窗体中加入一个按钮(CommandRotorate),设置它的Caption属性为“旋转”。然后加入以下代码:
Option Explicit
Const Pi = 3.14
Private Sub CommandRototate_Click()
Dim x As Integer, y As Integer
Dim X1 As Integer, Y1 As Integer
Dim X2 As Double, Y2 As Double
Dim X3 As Double, Y3 As Double
Dim JiaoDu As Double
Dim HuDu As Double
JiaoDu = 45 '角度
HuDu = JiaoDu * Pi / 180 '弧度
PicSource.ScaleMode = vbPixels
PicTarget.ScaleMode = vbPixels
For x = 0 To PicTarget.ScaleWidth
X1 = x - PicTarget.ScaleWidth \ 2
For y = 0 To PicTarget.ScaleHeight
Y1 = y - PicTarget.ScaleHeight \ 2
X2 = X1 * Cos(-HuDu) + Y1 * Sin(-HuDu)
Y2 = Y1 * Cos(-HuDu) - X1 * Sin(-HuDu)
X3 = X2 + PicSource.ScaleWidth \ 2
Y3 = Y2 + PicSource.ScaleHeight \ 2
If X3 > 0 And X3 < PicSource.ScaleWidth - 1 And Y3 > 0 And Y3 <
PicSource.ScaleHeight - 1 Then
PicTarget.PSet (x, y), PicSource.Point(X3, Y3)
End If
Next y
Next x
End Sub
运行后,按下“旋转”按钮,可以见到源图画盒中的位图旋转45度后进入到目标图画盒中。如果要改变旋转的角度,只需将JiaoDu变量设置为相应值即可。