從閱讀以前的答案我明白我需要分解我的代碼。我只需要幫助就可以了。VBA - Excel程序太大
我有一個大的選擇案例程序,大約有50個選擇。非常棒!直到我編寫了一半的「case is =」代碼來解析行,如果情況是真的。
看來我的變量「Dataline」不能傳遞給子程序。如何將Line變量傳遞給我的Sub。
Open fName For Input As #FileNum
While Not EOF(FileNum)
'read in data one line at a time.
Line Input #FileNum, Dataline
'Read first three characters of line to determine Line Name
LineName = Left(Dataline, 3)
'Find line Name them parse
Select Case LineName
Case Is = "EH " 'Envelope Header
EHsub 'Case sub routine (because I need to breakup code)
End Select ' End of Select Case
Wend ' end of While Loop
Close #FileNum 'close the file
Sub EHsub() 'if envelope header = "EH " then parse dataline
Field01 = Mid(Dataline, 1, 3) 'read 2nd data item
' I get an error here: "DataLine" is null
'place date item in data worksheet
Sheets("FannieData").Cells(Datarow, DataColumn).Value = Field01
End Sub
Um ...'Sub EHSub(ADataLine)',並在該代碼中分析'ADataLine',並用'EHLine DataLine'調用它? –
解析例程有多類似,即最終會在所有這些Subs中有什麼不同? – Comintern
我已經想通了。要將一個變量從一個變量傳遞給另一個變量,變量名稱不能相同。例如; Sub Main 呼叫Ehsub(Dataline) 結束 Sub Ehsub(Dataline1)'需要一個不同的名稱,然後通過值流。 結束 –