2015-10-21 68 views
1

我有一些代碼可以分解爲多個按順序運行的代碼。我從一個消息框開始,詢問「您是否輸入了八月份的數據」。如果答案是'是',它會運行一系列代碼,但是現在我的代碼太長了,我無法在8月份繼續這一系列代碼。我試圖無縫地改變代碼。當新的代碼開始時,我可以再次詢問「你輸入數據的月份是什麼」,但如果可能的話,我不想。理想情況下,我希望我的新代碼的第一行是「如果您對代碼1中的最初問題回答是,則繼續」。引用另一個子例程中的語句

這裏就是我所說的所有代碼:

Sub PreScrub() 
Call Tabs 
Call AUGSUMMCEND 
Call AugNUR 
End Sub 

第一個代碼只是格式化,所以我會跳過。這裏是我的第二個代碼的開始,我提示月份:

Augbox = MsgBox("Are you entering Prescrub for August?", vbYesNo + vbQuestion) 
If Augbox = vbYes Then 

For i = 1 To recvarSumm.Rows.Count 
    For j = 1 To recvarSumm.Rows.Count 
If recvarSumm.Cells(i, j).Value = "Aetna" Then 
    recvarSummvalues.Cells(i, j).Range("A1:C1").Copy 
    wsYTDSUMM.Columns(1).Find("Aetna").Offset(9, 1).PasteSpecial 
End If 
    Next j 
Next i 

代碼從那裏進行很長時間。然後,我想從我的AugNur代碼開始說:「如果來自AUGSUMMCEND的Augbox是'是',那麼繼續」。

這可能嗎?

回答

1

在代碼模塊的頂部,第一個程序之前,進入這一行:

Private Augbox As Long 

現在確保你不與程序的任何Dim語句再次定義Augbox

就是這樣。

Augbox的值現在將在模塊的所有過程之間共享。

+0

所以它會在我的Prescrub代碼之前,我稱之爲每個代碼?我問,因爲那麼我將不得不手動選擇運行Sub Prescrub()是否正確? –

+0

它會在其他任何事情之前,但它不應該改變你如何運行Prescrub()或其他任何東西。 –

相關問題