2015-06-22 71 views
0

我有一個工具,我正在設計用一組用戶形式向用戶提出一些問題。該表單將通過將來自用戶窗體的整數結果傳遞給主子工具來生成分數,該主子工具將代碼傳遞給工作表。我的問題是主模塊沒有獲得從私有模塊傳遞的值,這裏發生了什麼?無法將值從私人傳遞給公衆Sub

我第一次嘗試使用未通過的布爾值來做到這一點,現在我正在嘗試使用也不能通過的整數結果。

用戶表單代碼:

Private Sub Image1_Click() 
Select Case MsgBox("You have picked Thinks Commercially, is this correct?", vbYesNo, "Please Confirm") 
    Case VbMsgBoxResult.vbYes 
     Call Main.CountResults(ThinksCommerciallyInt = 1, OptimisesTalentInt = 0, DeliversPIInt = 0, DrivesExecutionInt = 0, ChampionsChangeInt = 0, OperatesColInt = 0) 
     UserForm1.Hide 
     UserForm2.Show 
    Case VbMsgBoxResult.vbNo 
     MsgBox ("Please Select Again") 
End Select 
End Sub 

主要分代碼

Public Sub CountResults(ThinksCommerciallyInt As Integer, OptimisesTalentInt As Integer, DeliversPIInt As Integer, DrivesExecutionInt As Integer, ChampionsChangeInt As Integer, OperatesColInt As Integer) 

If ThinksCommerciallyInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B2").Value = ThinksCommerciallyInt 
ThinksCommerciallyInt = ThinksCommerciallyInt + 1 
ThinksCommerciallyInt = ThisWorkbook.Worksheets("Config").Range("B2").Value 
End If 

If OptimisesTalentInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B3").Value = OptimisesTalentInt 
OptimisesTalentInt = OptimisesTalentInt + 1 
OptimisesTalentInt = ThisWorkbook.Worksheets("Config").Range("B3").Value 
End If 

If DeliversPIInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B4").Value = DeliversPIInt 
DeliversPIInt = DeliversPIInt + 1 
DeliversPIInt = ThisWorkbook.Worksheets("Config").Range("B4").Value 
End If 

If DrivesExecutionInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B5").Value = DrivesExecutionInt 
DrivesExecutionInt = DrivesExecutionInt + 1 
DrivesExecutionInt = ThisWorkbook.Worksheets("Config").Range("B5").Value 
End If 

If ChampionsChangeInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B6").Value = ChampionsChangeInt 
ChampionsChangeInt = ChampionsChangeInt + 1 
ChampionsChangeInt = ThisWorkbook.Worksheets("Config").Range("B6").Value 
End If 

If OperatesColInt = 1 Then 
ThisWorkbook.Worksheets("Config").Range("B7").Value = OperatesColInt 
OperatesColInt = OperatesColInt + 1 
OperatesColInt = ThisWorkbook.Worksheets("Config").Range("B7").Value 
End If 


End Sub 
+0

是主要模塊嗎? – Madhawas

+0

是的,它不是單獨編寫實例,而是將它們放入一個名爲Main – PootyToot

回答

2

在調用代碼:

ThinksCommerciallyInt = 1 

應該

ThinksCommerciallyInt := 1 

同樣對於其他參數

+0

的模塊下的單個子例程中!謝謝 – PootyToot