前の回答を読んでから、自分のコードを分割する必要があることを理解しています。私はそれをするのに助けが必要です。VBA - Excelプロシージャが大きすぎる
私は約50の選択肢を持つ大規模なケース選択手順を持っています。よく働く! caseがtrueの場合、行を解析するための "case is ="コードの半分をプログラムするまでは。
私の変数「Dataline」はサブルーチンに渡されないようです。 Sub変数にLine変数を渡すにはどうしたらいいですか?
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'で呼び出しますか? –
解析ルーチンはどれほど似ていますか。つまり、これらのすべてのSubでは何が違うのでしょうか? – Comintern
私はそれを理解しました。あるサブ変数から別のサブ変数に変数を渡すには、変数名を同じにすることはできません。例えば; サブメイン コールEhsub(Dataline) 終了 サブEhsub(Dataline1) '別の名前にする必要があります。 終了 –