0

セルの範囲に値が存在するかどうかを調べ、存在しない場合は関数を実行しようとしています。エクセル2007を使用しています。

ただし、2つの問題があります-

  1. Run-time error 9 - Subscript out of range行でエラーが発生していますtitles(i) = cell.Value
  2. If値が配列に存在するかどうかを確認するためにステートメントで使用できるワンライナーを知りません。

これまでの私のコードは次のとおりです。これらの問題を解決する方法についての指針、またはおそらくより良いアプローチに関するヒントをいただければ幸いです。ありがとう。

Sub start()

    Dim title_range As Range        ' The range that contains the column titles
    Dim cell As Range               ' The individual cell from the title range
    Dim titles() As String          ' The column titles
    Dim i As Integer                ' Dummy for count

    ' Set the column titles range
    Set title_range = ActiveWorkbook.Sheets("DJG Marketing - Client List by ").Range("A1:DZ1")
    i = 0
    For Each cell In title_range
        titles(i) = cell.Value
        i = i + 1
        ReDim Preserve titles(i)
    Next

    If {value 'Matter open month' does not exist in the array `titles`} Then
        create_month_column
    End If

End Sub
4

3 に答える 3

3

このコードを試してください:

i = 0
ReDim titles(i) 'this is missing ;)
For Each cell In title_range
    titles(i) = cell.Value
    i = i + 1
    ReDim Preserve titles(i)
Next
于 2012-09-28T10:01:13.770 に答える
2

配列を初期化する前に値を割り当てようとしているため、そのエラーが発生しています

Dim titles() As String
i = 0
For Each cell In title_range
    titles(i) = cell.Value
    '
    '
Next
于 2012-09-28T10:01:11.060 に答える
0

VBAは配列のインデックス1から始まりませんか?

LBoundそれに加えて、いつでもとで境界を確認できますUBound

于 2012-09-28T09:57:34.210 に答える