我正在慢慢地学习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