変数名に基づいてどの配列を設定するか選択できますか?VBAの変数に基づいて使用する配列を選択してください
私はイエロー、ブルー、グリーン、ライラックに属する4セットのデータを持っています。まったく同じ4つのアレイを作成しました。データは、開始時にY、B、G、Lがあることを除いて同じですが、対応する配列を作成したいが、すべてのセットを4セット作成したくない。ラインmySorter = (Mid(myLines(i), 53, 1))
上記のコードで
For i = 0 To UBound(myLines)
myAlrmStrDate = Mid(myLines(i), 6, 2) & "/" & Mid(myLines(i), 4, 2) & "/" & Mid(myLines(i), 2, 2)
myAlrmStrTime = Mid(myLines(i), 9, 2) & ":" & Mid(myLines(i), 11, 2) & ":" & Mid(myLines(i), 13, 2)
myAlrmEndDate = Mid(myLines(i), 38, 2) & "/" & Mid(myLines(i), 36, 2) & "/" & Mid(myLines(i), 34, 2)
myAlrmEndTime = Mid(myLines(i), 41, 2) & ":" & Mid(myLines(i), 43, 2) & ":" & Mid(myLines(i), 45, 2)
myFaultDesc = (Mid(myLines(i), 49, 50))
mySorter = (Mid(myLines(i), 53, 1))
myCtime = CDate(myAlrmStrTime)
myMinutes = Hour(myCtime) * 3600 + Minute(myCtime) * 60 + Second(myCtime)
myftime = Int(myMinutes/900) * 900
myftime = myftime/86400 * 96
' Find IOTT Alarms
If InStr(1, (Mid(myLines(i), 49, 50)), "IOTT") And InStr(1, (Mid(myLines(i), 49, 50)), "CSC ack") <> 0 Then
myTimeDiff = CDate(myAlrmEndTime) - CDate(myAlrmStrTime)
mySorter(myftime).IOTT = mySorter(myftime).IOTT + 1
mySorter(myftime).IOTTDUR = mySorter(myftime).IOTTDUR + myTimeDiff
mySorter(96).IOTT = mySorter(96).IOTT + 1
If mySorter(myftime).IOTT > mySorter(98).IOTT Then
mySorter(97).IOTT = myftime
mySorter(98).IOTT = mySorter(myftime).IOTT
End If
MsgBox "Line" & "=" & i & myFaultDesc
End If
Y、B、G又はLを選択し、それが私は、配列を移入起動に使用するために、アレイを設定する本です。
基本的に私はそれが以下の配列を指すようにしたいが、書類など
Type Sorter
Date As Date
time As Date
Colour As Long
Area As String
Cart As Long
ISD As Long
WNI As Long
WNIDUR As Date
LM As Long
IOTT As Long
IOTTDUR As Date
IOC As Long
End Type
Global Y() As Sorter
Global G() As Sorter
Global B() As Sorter
Global L() As Sorter
Global YGBL() As Sorter
ReDim Y(99)
ReDim G(99)
ReDim B(99)
ReDim L(99)
ReDim YGBL(99, 4)
YGBLがあるが、以下のように私の現在の配列が設定されて
Y(myftime).IOTTDUR
B(myftime).IOTTDUR
G(myftime).IOTTDUR
L(myftime).IOTTDUR
場合、複雑作成したくありません提案されているように追加されていますが、これがどのように機能するかについてはまだ検討中です
ありがとう
に言及例えば、YBGLは、あなたが使用することができている場合
で最初の次元のインデックスを決定することができますあなたが提供することは、あなたが望むものを理解することをさらに困難にします。配列を塗りつぶしたコードを別のサブ配列に移動し、4つの配列の1つを 'byref'パラメータとして渡したいと思うでしょう。 – GSerg
こんにちは、私は現在4つの別々の配列を持っていて、Y、B、G、Lの文字列に応じて検索して、対応する配列に異なる値を追加したいとします。 – Fabby
1つの配列を宣言し、それをY、B、GまたはLに割り当てますか?またはあなたが空想的で、4つの配列の1つに[参照を作成](http://stackoverflow.com/a/11713643/11683)というコピーを避けたい場合は、参照を記入して破棄しますか? – GSerg