重用VBA Sub打开excel文件


我正在慢慢地学习VBA,并且已经实现了一些很好的东西,基本上是从论坛上剪切和粘贴的,但现在我被卡住了。

使用下面的脚本:WordMVP我可以从Word中打开excel文件。没问题。然而,现在我已经多次重用这个脚本,我的模块开始变得很长。我能把这个分成不同的潜艇吗?然后在我需要的时候调用零件?例如:(对链接代码进行比特处理)

把这个放在一个单独的子目录中:

    Sub WorkOnAWorkbook(str As String)  

    Dim oXL As Excel.Application 
    Dim oWB As Excel.Workbook 
    Dim oSheet As Excel.Worksheet 
    Dim oRng As Excel.Range 
    Dim ExcelWasNotRunning As Boolean         

    'If Excel is running, get a handle on it; otherwise start a new instance of Excel 
    On Error Resume Next 
    Set oXL = GetObject(, "Excel.Application")

    If Err Then 
       ExcelWasNotRunning = True 
       Set oXL = New Excel.Application 
    End If 

    On Error GoTo Err_Handler 

    'Open the workbook 
    Set oWB = oXL.Workbooks.Open(FileName:=str)

    Exit Sub 

    Err_Handler: 
       MsgBox WorkbookToWorkOn & " caused a problem. " & Err.Description, vbCritical, _
           "Error: " & Err.Number   

End Sub

这是另一个例子:

Sub release()

'Make sure you release object references. 
Set oRng = Nothing 
Set oSheet = Nothing 
Set oWB = Nothing 
Set oXL = Nothing 

End Sub

并在我需要时使用它们,例如:

Sub test()

Call WorkOnAWorkbook("somefile.xls")
oWB.Application.Run "Module1.TestMacro", "JasonX"
Call release()

End Sub

我在oWB.Application.Run "Module1.TestMacro","JasonX“得到了一个424对象。

这样的事情是可能的吗,一部分我觉得我就快到了,一部分我觉得我完全搞砸了,一部分我觉得这是不可能的……

有人能帮帮忙吗??

万分感谢。

转载请注明出处:http://www.cxyjjj.com/article/20230526/2223193.html