简介本文介绍了使用 Microsoft Office Excel 2003 的 技巧,它们是从各种新闻组汇集而来的。对于那些不熟悉的人来说,新闻组是一个论坛,用户和开发人员可以在这里提交涉及许多技术主题(例如 Office 应用程序)的问题。用户和其他专业人员可以回答这些问题。在此上下文中,新闻组包含大量经过修改的信息,可以帮助您使用和开发所选的 Office 应用程序。构成这些技巧的答案都是超级用户和开发人员(称为 Microsoft 最有价值的专家 (MVP))多年经验的结晶。 本文中的代码示例旨在作为您自定义应用程序的起点。这些示例已在 Excel 2003 上经过测试,但是也可以在 Excel 的先前版本中运行。在您的应用程序中使用这些示例之前,应该在您自己的 Excel 版本中对它们进行测试。 隔页打印工作表本部分中的代码用于隔页打印工作簿中的工作表。它通过循环访问所有的工作表并用偶数表填充数组来做到这一点。 Sub PrintEvenSheets() Dim mySheetNames() As String Dim iCtr As Long Dim wCtr As Long iCtr = 0 For wCtr = 1 To Sheets.Count If wCtr Mod 2 = 0 Then iCtr = iCtr + 1 ReDim Preserve mySheetNames(1 To iCtr) mySheetNames(iCtr) = Sheets(wCtr).Name End If Next wCtr If iCtr = 0 Then 'Only one sheet. Display message or do nothing. Else Sheets(mySheetNames).PrintOut preview:=True End If End Sub 该示例用于打印偶数工作表。您可以循环访问所有的工作表,并根据要打印的偶数工作表来构建一个数组。可以通过删除本示例中的第一个 If...Then End If 语句来做到这一点。 使用 ADO 在工作簿中检索工作表名称此代码示例使用 Microsoft ActiveX Data Objects (ADO) 在工作簿中检索工作表的名称。通过使用 ADO,您可以在 Excel 之外处理文件。ADO 使用通用编程模型来访问许多窗体中的数据。 Sub GetSheetNames() Dim objConn As Object Dim objCat As Object Dim tbl As Object Dim iRow As Long Dim sWorkbook As String Dim sConnString As String Dim sTableName As String Dim cLength As Integer Dim iTestPos As Integer Dim iStartpos As Integer 'Change the path to suit your own needs. sWorkbook = "c:\myDir\Book1.xls" sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & sWorkbook & ";" & _ "Extended Properties=Excel 8.0;" Set objConn = CreateObject("ADODB.Connection") objConn.Open sConnString Set objCat = CreateObject("ADOX.Catalog") Set objCat.ActiveConnection = objConn iRow = 1 For Each tbl In objCat.Tables sTableName = tbl.Name cLength = Len(sTableName) iTestPos = 0 iStartpos = 1 'Worksheet names with embedded spaces are enclosed 'by single quotes. If Left(sTableName, 1) = "'" And Right(sTableName, 1) = "'" Then iTestPos = 1 iStartpos = 2 End If 'Worksheet names always end in the "___FCKpd___1quot; character. If Mid$(sTableName, cLength - iTestPos, 1) = "___FCKpd___1quot; Then Cells(iRow, 1) = Mid$(sTableName, iStartpos, cLength - _ (iStartpos + iTestPos)) MsgBox Cells(iRow, 1) iRow = iRow + 1 End If Next tbl objConn.Close Set objCat = Nothing Set objConn = Nothing End Sub (责任编辑:admin) |