私は問題に遭遇しました。私は VBA にはかなり慣れていませんが、習得は早いです。私はこのコードを以下に示し、列を調べて、別のコードで使用するために、この列でデータの行が取る可能性のあるすべての値を選択しようとしています。
配列を機能させることができません。間違っている可能性があります。明確でない場合は、列 I のセルの値をチェックし、それが値である場合 (まだ格納されていない場合 (コードは示されていますが、まだ使用されていません))、値は配列に格納され、配列内の位置と列の下の位置がインクリメントされます。
私がまだ見ていない別の質問は、名前などで配列内の値を配置する方法ですか? この場合の値は、AHU1、AHU2、AHU3 など、最大で AHU5 または 6 になります。また、必要に応じて配列を拡張するコードを少し実装するつもりです (小さいから、必要以上に大きくなりません)。
編集:まだ解決していない別の問題は、Ifステートメントが常に値を配列に追加する理由です(そうではありません)
Do
If IsNull(V1.Range("I" & i)) = False Then 'And V1.Range("I" & i).Value <> (Val(AHUArray(1)) Or Val(AHUArray(2)) Or Val(AHUArray(3)) Or Val(AHUArray(4)) Or Val(AHUArray(5)) Or Val(AHUArray(6)) Or Val(AHUArray(7)) Or Val(AHUArray(8)) Or Val(AHUArray(9)) Or Val(AHUArray(10))) Then 'And (does not equal any other values in the array
AHUArray(ArrayDim) = V1.Range("I" & i).Text
i = i + 1
ArrayDim = ArrayDim + 1
Else
i = i + 1
End If
Loop While i <= LastRow
何かアイデアはありますか?, 助けていただければ幸いです!
これらは、このコードがこれらの問題を包む前の定義です (過去にあったように、そうではないと思いますか?
Dim V1 As Worksheet
Dim LastRow As Long
Dim C As Range
Dim FirstAddress As String
Dim AHUArray(1 To 10) As String
Dim DestCell As Integer
Dim i As Integer
Dim ArrayDim As Integer
Set V1 = ThisWorkbook.Sheets("V1")
Set AHU = ThisWorkbook.Sheets("AHU")
LastRow = V1.Range("A:A").Find("*", V1.Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DestCell = 3
ArrayDim = 1
i = 3