解决方案 »

  1.   


      Set excel1 = New Excel.Application
        excel1.Visible = False
        excel1.Workbooks.Open (App.Path & "\程序模版.xls") ‘此处 写你需要打开的路径
        excel1.Workbooks("程序模版.xls").Sheets("待打印").Select ’你要选择的表
    '下面是判断,你所需要打开的文件是否已经被打开
        If excel1.Workbooks("程序模版.xls").ReadOnly = True Then
            excel1.DisplayAlerts = False
            excel1.Application.Quit
            excel1.DisplayAlerts = True
            MsgBox "你已经打开“程序模版.xls”" & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
            excel1.Visible = True
            Exit Sub
        End If
    ‘以下添加你将第一列不为空的全部加入到,所说的到combo1dim i as long
    for i = 1 to   excel1.Workbooks("程序模版.xls").Sheets("待打印").range("a65536).end(xlup).row
    if   trim(excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1))<>"" then
    combo1.additem excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1)
    end if
    next
      

  2.   

    excel1.Workbooks("程序模版.xls").Sheets("待打印").Select ’你要选择的表 显示下标越界
      

  3.   

    Dim excel1
    Set excel1 = New Excel.Application
        excel1.Visible = False
        excel1.Workbooks.Open (CommonDialog1.FileName) '此处 写你需要打开的路径
        excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Select  '你要选择的表
    '下面是判断,你所需要打开的文件是否已经被打开
        If excel1.Workbooks(CommonDialog1.FileName).ReadOnly = True Then
            excel1.DisplayAlerts = False
            excel1.Application.Quit
            excel1.DisplayAlerts = True
            MsgBox "你已经打开 " & CommonDialog1.FileName & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
            excel1.Visible = True
            Exit Sub
        End If
    '以下添加你将第一列不为空的全部加入到,所说的到combo1
     
    Dim i As Long
    For i = 1 To excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Range("a65536").End(xlUp).Row
    If Trim(excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)) <> "" Then
    Combo1.AddItem excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)
    End If
    Next
    End Sub
      

  4.   

    Sheets("待打印"),这个也要改成你表单的名字
      

  5.   

    你在哪里提示下标越界,下标越界是没有文档的提示你sheet(1)不应该这么写,应该改写为 sheet("sheet1")
      

  6.   

    你在哪里提示下标越界,下标越界是没有文档的提示你sheet(1)不应该这么写,应该改写为 sheet("sheet1")依旧报错
      

  7.   

    你按那个调试按钮,然后就可以定位到你哪一行处问题了。然后把鼠标放过去把变量加到watch里面
      

  8.   

    整那么复杂干嘛?
    Private Sub Command1_Click()
        Dim mExcel As Excel.Application
        Dim mBook As Excel.Workbook, mSht As Excel.Worksheet
        ''文档已经打开的情况下
        Set mExcel = GetObject(, "excel.application")
        Set mBook = mExcel.ActiveWorkbook
        ''文档还没打开的情况下
        ''Set mExcel = CreateObject("excel.application")
        ''Set mBook = mExcel.Workbooks.Open("你的文件名带路径")
        Set mSht = mBook.Worksheets("sheet1") ''默认sheet1为你的目标工作表
        Dim i As Long, Rng As Excel.Range
        Combo1.Clear ''清除列表
        With mSht
            i = .Cells(1, .Columns.Count).End(xlToLeft).Column ''确定第一行最后一个不为空的列号
            For Each Rng In .Range(.Cells(1, 1), .Cells(1, i))
                If Rng.Value <> "" Then Combo1.AddItem Rng.Value
            Next
        End With
    End Sub