[求助] 从access中导出excel系统提示编译错误:用户定义类型为定义。把代码发一下
<P>Option Compare Database<BR>Option Explicit<BR>Public MyXL As Object<BR><FONT style="BACKGROUND-COLOR: #ccff00">Sub GetExcel()<BR></FONT>'使用这段代码,可以打开一个Excel实例或者引用已经打开的Excel实例<BR> Const ERR_APP_NOTRUNNING As Long = 429<BR> On Error Resume Next<BR> Set MyXL = GetObject("Excel.Application")<BR> If Err = ERR_APP_NOTRUNNING Then<BR> Set MyXL = <FONT style="BACKGROUND-COLOR: #1a94e6">New Excel.Application<BR></FONT> End If<BR> MyXL.Application.Visible = True<BR>End Sub</P><P>Public Sub CreateNewBook()<BR>'新建一个工作簿<BR> MyXL.Application.WorkBooks.Add<BR>End Sub</P>
<P> Public Sub CopyToClip(FormName As String, SubFormName As String)<BR>'使用代码将窗体上的数据复制到Windows粘贴板<BR> Forms(FormName).Controls(SubFormName).SetFocus<BR> DoCmd.RunCommand acCmdSelectAllRecords<BR> DoCmd.RunCommand acCmdCopy<BR>End Sub</P>
<P>Public Sub CopyToExcel()<BR>'使用代码将Windows粘贴板的内容粘贴到Excel<BR> GetExcel<BR> MyXL.Application.WorkBooks.Add<BR> MyXL.Application.ActiveSheet.Paste<BR>End Sub</P>
<P>Public Sub FormatTAB()<BR>'对导出到Excel中的数据进行格式化,比如,加上报表标题、设置表格线等。<BR> Dim J As Integer<BR> SetLine '设置表格线的子程序,在Access中实现对Excel文档格式化<BR> MyXL.Application.ActiveSheet.Rows("1:1").Select<BR> '插入两行作为标题行<BR> For J = 1 To 2<BR> MyXL.Application.Selection.Insert Shift:=xlDown<BR> Next J<BR> MyXL.Application.ActiveSheet.Range("A1") = "标题文字"<BR> '设置表标题字体<BR> MyXL.Worksheets(1).Range("A1").Select<BR> With MyXL.Application.Selection.Font<BR> .Name = "宋体"<BR> .Size = 16<BR> End With<BR>End Sub</P>
<P>Public Sub SetLine()<BR>'设置表格线<BR> On Error Resume Next<BR> MyXL.Application.Selection.Borders(xlDiagonalDown).LineStyle = xlNone<BR> MyXL.Application.Selection.Borders(xlDiagonalUp).LineStyle = xlNone<BR> MyXL.Application.Selection.WrapText = False<BR> With MyXL.Application.Selection.Borders(xlEdgeLeft)<BR> .LineStyle = xlContinuous<BR> .Weight = xlThin<BR> .ColorIndex = xlAutomatic<BR> End With<BR> With MyXL.Application.Selection.Borders(xlEdgeTop)<BR> .LineStyle = xlContinuous<BR> .Weight = xlThin<BR> .ColorIndex = xlAutomatic<BR> End With<BR> With MyXL.Application.Selection.Borders(xlEdgeBottom)<BR> .LineStyle = xlContinuous<BR> .Weight = xlThin<BR> .ColorIndex = xlAutomatic<BR> End With<BR> With MyXL.Application.Selection.Borders(xlEdgeRight)<BR> .LineStyle = xlContinuous<BR> .Weight = xlThin<BR> .ColorIndex = xlAutomatic<BR> End With<BR> With MyXL.Application.Selection.Borders(xlInsideVertical)<BR> .LineStyle = xlContinuous<BR> .Weight = xlHairline<BR> .ColorIndex = xlAutomatic<BR> End With<BR> With MyXL.Application.Selection.Borders(xlInsideHorizontal)<BR> .LineStyle = xlContinuous<BR> .Weight = xlHairline<BR> .ColorIndex = xlAutomatic<BR> End With<BR>End Sub</P>
<P>Public Sub CloseExcel()<BR>'关闭打开的工作簿<BR>'关闭Excel<BR> On Error Resume Next<BR> MyXL.Application.DisplayAlerts = False<BR> MyXL.Application.Save<BR> MyXL.Application.quit<BR> Set MyXL = Nothing '释放对该应用程序<BR>End Sub<BR></P>
[align=right][color=#000066][此贴子已经被作者于2007-8-13 19:35:57编辑过][/color][/align]
不客气[em03][em03]
页:
[1]
