私は空港のコレクションを作成したいと思います。VBAクラスモジュールのコレクションを正しく操作するにはどうすればよいですか?
空港は多くのパラメータがありますが、簡単のために、のは空港のクラスは空港クラスモジュールに次のように定義されていると仮定してみましょう:
'Class Airport
Public name As String ' Stores name of the airport
Public flights As Long ' Stores number of flights in that airport
その後、私のモジュールはかなり大きいですが、これはどこの部分であります私は、重複したものを削除し、空港のコレクション内のExcelファイルとストア値から列を読む:
Dim airports As Collection
Set airports = New Collection
'Putting airports in collection
Dim c As Range
For Each c In wsToCheck.Range("D:D")
On Error Resume Next
Dim airport As New Airport
airport.name = c.Value
airports.Add airport, c.Value
On Error GoTo 0
Next
私は真ん中
で行う場合ます。Debug.Print airport.name
私は名前を得るが、私が行うとき
のDebug.Print空港(1)
何も印刷されません(ただし、さを.nameのエラーもない)。
以前は文字列のコレクションを使用していましたが、それは機能していました。しかし、空港ごとに複数の文字列が必要になります。
私のコードで何が間違っていますか?コレクションを使用していますか?
Debug.Printのどの時点でコードを実行しましたか?このコードを実行すると、期待どおりに実行されました。 –
私は空港のクラスも作っていますので、 'airports.AirPortExists'' getAirportRunways(strAiportCode)'と言うと、上記のコードがコンストラクト内に存在するか、 '.populateAiports(rng as excel.range)'と答えます –