我程序设置大致如此:
在主窗体m中创建一个commandbutton和SFlexGrid,其中SFlexGrid用来接受通过添加窗体方式,建立起来的一个单窗体_对话框的内容.
当点击菜单某选项,就出现单窗体_对话框,输入信息完成后,关闭此窗体,这时刚输入的信息在SFlexGrid可见,然后按commandbutton,将信息写入到xx.xls文件.
但现在问题是,如将有关控制EXcel文件读写的程序从Sub command1_click()下移出,放入2个用于执行不同EXcel程序的菜单选项下(file1,file2).
如:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.WorksheetPrivate Sub file1_Click() '打開excel過程
    Set xlApp = CreateObject("Excel.Application") '創建excel應用項
    xlApp.Visible = True '設置excel可見
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\01.xls") '打開excel工作薄
    Set xlSheet = xlBook.Worksheets(1) '打開excel工作表
    xlSheet.Activate '啟動工作表1
End Sub
Private Sub file2_Click()   Set xlApp = CreateObject("Excel.Application") '創建excel應用項
    xlApp.Visible = True '設置excel可見
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\02.xls") '打開excel工作薄
    Set xlSheet = xlBook.Worksheets(1) '打開excel工作表
    xlSheet.Activate '啟動工作表2
End Sub
程序会不等你点击x或y,就自动向下执行,不知道为什么?
我现在与Excel有关的程序都方在Sub command1_click()下,如放到Sub Form_Load()下就也会自动执行,且commandbutton按钮会不起作用.哪位知道怎么完成我的上述要求.谢谢!

解决方案 »

  1.   

    还有你的file1_Click() 和 file2_Click() 功能重复,没有必要加一个combobox来选择01、02就可以了,直接在Sub command1_click()下
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & combo1.text & ".xls") 
      

  2.   

    非常感谢!
    已经测试通过了,解决大问题了.
    但是否可以不添加combobox呢,感觉还是有点麻烦.可否就通过在菜单上选择file1/file2来实现上述功能呢?
      

  3.   

    代码没有什么问题.
    只是不太明白你的意思,是指只要加载到了menu上,form.load的时候会自动执行吗?
    如果有这种诡异的事情发生,那么在form上建立command1,把代码换成commond1_click()试试.
    继续关注中.