私はVBAをゆっくりと学んでおり、本質的にフォーラムからカットアンドペーストすることができましたが、今は固執しています。VBA Subを再利用してExcelファイルを開く
ここでこのスクリプトを使用してください:WordMVP WordからExcelファイルを開くことができます。問題ない。しかし、今ではこのスクリプトを何度も再利用してきたので、モジュールが長くなっています。これを別のサブシステムに分割することはできますか?そして私がそれらを必要とするとき、部品を呼んでください?例えば:(ビットにリンクされたコードをハッキング)
1つの別個のサブでこれを入れて:例えば、
Sub release()
'Make sure you release object references.
Set oRng = Nothing
Set oSheet = Nothing
Set oWB = Nothing
Set oXL = Nothing
End Sub
と私はそれらを必要なときにそれらを使用する:別で
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 test()
Call WorkOnAWorkbook("somefile.xls")
oWB.Application.Run "Module1.TestMacro", "JasonX"
Call release()
End Sub
私はoWB.Application.Run "Module1.TestMacro"、 "JasonX" で必須の424オブジェクトを取得します。
は誰...私はほとんどそこだように私のこの可能性、一部が感じるように、私は完全に台無しにしましたように私の一部が感じる、と私の一部は、その可能性はないと考えて
何でもできることです助けてください??
Thx100万。
何が 'Class'のような音を求めている - (http://www.cpearson.com/Excel/Classes.aspx) –