У меня есть код, написанный для меня @ Jon49, который я адаптировал к своим целям: проблема, с которой я сталкиваюсь с этим кодом, заключается в том, что он работает для некоторых моих файлов, но выдает ошибку 9, выходящую за пределы диапазона других.по сути, у меня есть цикл, который открывает каждый файл в папке, в свою очередь выполняет следующий код.сохраняет его, затем закрывает перед открытием другого.Формат всех файлов одинаков.так, что вызывает ошибку ??
Когда ошибка происходит, и я отлаживаю ее, это имеет тенденцию показывать причину где-то здесь:
sData(j, 7) = vData(1, j + 10)
sData(j, 8) = vData(i, j + 10)
sData(j, 9) = vData(3, j + 10)
sData(j, 10) = vData(2, j + 10)
ПРОКРУТИТЬ ДНА для того, что ядумаю вызывает ошибку
Вот код:
Range("k1").Select
Dim Parameters As String
Parameters = Range(ActiveCell.End(xlToRight).Offset(0, 0), ActiveCell).Count
Dim i As Long, j As Long, k As Long
Dim rData As Range
Dim sData() As String, sName As String
Dim wks As Worksheet
Dim vData As Variant
Application.EnableEvents = False 'Initialize worksheets
Set wks = ActiveSheet 'Get data
Set rData = wks.UsedRange
vData = rData
ReDim sData(1 To Parameters, 1 To rData.Columns.Count - 10)
rData.Offset(1).Clear
rData.Offset(11).Resize(1).Clear
<---- ???не уверен насчет важности строки выше, потому что я закомментировал и код все равно будет работать </p>
For i = 1 To UBound(vData)
For j = 1 To UBound(sData)
For k = 1 To 6
sData(j, k) = vData(i, k)
Next k
sData(j, 7) = vData(1, j + 10)
sData(j, 8) = vData(i, j + 10)
sData(j, 9) = vData(3, j + 10)
sData(j, 10) = vData(2, j + 10)
Next j 'Print transposed data
wks.Range("A" & Application.Rows.Count).End(xlUp) _
.Offset(1).Resize(UBound(sData), UBound(sData, 2)) = sData
Next i
Application.EnableEvents = True
Range("K1").Select
Range(ActiveCell.End(xlToRight).Offset(0, 0), ActiveCell).Delete
Rows("2:" & Parameters + 1).Delete
![enter image description here](https://i.stack.imgur.com/yvWB2.png)
Одна вещь, на которую я обратил внимание, - это файлы, в которых ошибка, по-видимому, создается, имеет мало параметров (два файла, которые я заметил, что до сих пор она ошибалась, имеют 9 [отладят в sData (j, 10) = vData (2, j + 10)] и 7 [sData (j, 8) = vData (i, j + 10)] параметров каждый) остальные, с которыми все в порядке, до сих пор имеют более 10 параметров.параметры: CH4, NO, NO2 и т. д.