私は選択を取得し、それを文字列の配列にする次のコードがあります。ExcelのVBAループと配列から値を取得
Dim strArgument As Variant
Dim irange As Range
Dim ricosString As Variant
Set irange = Selection
ricosString = RangeToStringArray(irange)
Dim vArray As Variant
For i = LBound(ricosString) To UBound(ricosString)
Set vArray = ricosString(i)
私の問題はricosString(i)
です。それはエラーを投げているSubscript out of range.
何か考えている理由は?
がRangeToStringArray
Public Function RangeToStringArray(theRange As Excel.Range) As String()
Dim variantValues As Variant
variantValues = theRange.Value
Dim stringValues() As String
ReDim stringValues(1 To UBound(variantValues, 1), 1 To UBound(variantValues, 2))
Dim columnCounter As Long, rowCounter As Long
For rowCounter = UBound(variantValues, 1) To 1 Step -1
For columnCounter = UBound(variantValues, 2) To 1 Step -1
stringValues(rowCounter, columnCounter) = CStr(variantValues(rowCounter, columnCounter))
Next columnCounter
Next rowCounter
RangeToStringArray = stringValues
エンド機能
私は 'RangeToStringArray'関数を変更したときに' For i = LBound(ricosString)To'という行にエラーがありますUBound(ricosString) ' –
どのようなエラーが発生していますか? – gizlmo
添え字が範囲外です。 –