小弟想將NFrom 放入CheckWIS 的子程序檢查
請問需要使用那一個datatype會比較好
NFrom是負責開檔案的
'This function should open the data files and save the data
'in the worksheet SourceData and the variable SourceData
Sub OpenDataFiles()
ThisWorkbook.Worksheets("SourceData").Cells.Clear
Call SetWorksheetsWithFormat("SourceData")
'get filename from user
NForm = Application _
.GetOpenFilename(FileFilter:="Excel Files (*.xls), *.xls", Title:="Select File To Be Opened(Data File)", MultiSelect:=True)
'Call function to check
Call CheckWIS <-- 如果將此句comment則能正常運行
...
...
Sub CheckWIS(NForm As ? ) <--這裡不知道用什麼較好,有嘗試使用String或留空就會被程式罵ByRef引數不符。
Debug.Print ("ComeIn CheckWIS")
If (NForm.Worksheets("Sheet1").Range("C4").Value <> "WIS FORMAT" Or "WIS Format") Then
...
...
還有是昨天謝謝海綿寶寶和froce的回應,因新手不能留言所以沒有回答,謝謝解答
根據這篇來看
可以用 Variant 試試看
但Variant不是不需要設定就已經擁有的嗎? (看影片說的)
但是VB是靜態語言,你輸入的參數一定要指定一個類型。
就算是 Variant 你還是要告訴函式你吃的參數類型是 Variant。
全部不寫可以(MacroA)
寫完整宣告也可以(MacroB)
就是不能寫一半(MacroC)
Sub test()
Call MacroA("Good Job.")
Call MacroB(65535)
End Sub
Sub MacroA(ByVal uForm)
Debug.Print uForm
End Sub
Sub MacroB(ByVal uForm As Variant)
Debug.Print uForm
End Sub
Sub MacroC(ByVal uForm as)
Debug.Print uForm
End Sub