织梦CMS - 轻松建站从此开始!

技术无忧网 - 技术从此无忧 -- 一站式中文IT技术网站 - www.tech51.net

Excel 2003 实用技巧

时间:2009-01-04 13:52来源: 作者: 点击:
简介 本文介绍了使用 Microsoft Office Excel 2003 的 技巧,它们是从各种新闻组汇集而来的。对于那些不熟悉的人来说,新闻组是一个论坛,用户和开发人员可以在这里提交涉及许多技术主题(例如 Office 应用程序)的问题。用户和其他专业人员可以回答这些问题。在此上下

简介

本文介绍了使用 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)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片