Я пытался узнать, как объявить двумерный массив, но все примеры, которые я нашел до сих пор, объявлены с заданными целыми числами. Я пытаюсь создать программу, которая будет использовать два двумерных массива, а затем выполнять простые операции с этими массивами (например, находить разницу или процент). Массивы заполняются числами на листах Excel (один набор чисел находится на Листе 1, а другой набор - на Листе 2, оба набора имеют одинаковое количество строк и столбцов).
Поскольку я не знаю, сколько строк или столбцов там я собирался использовать переменные.
Dim s1excel As Worksheet
Dim s2excel As Worksheet
Dim s3excel As Worksheet
Dim firstSheetName As String
Dim secondSheetName As String
Dim totalRow As Integer
Dim totalCol As Integer
Dim iRow As Integer
Dim iCol As Integer
Set s1excel = ThisWorkbook.ActiveSheet
' Open the "Raw_Data" workbook
Set wbs = Workbooks.Open(file_path & data_title)
wbs.Activate
ActiveWorkbook.Sheets(firstSheetName).Select
Set s2excel = wbs.ActiveSheet
' Find totalRow, totalColumn (assumes there's values in Column A and Row 1 with no blanks)
totalRow = ActiveSheet.Range("A1").End(xlDown).Row
totalCol = ActiveSheet.Range("A1").End(xlToRight).Column
Dim s2Array(totalRow, totalCol)
Dim s3Array(totalRow, totalCol)
For iRow = 1 To totalRow
For iCol = 1 To totalCol
s2Array(iRow, iCol) = Cells(iRow, iCol)
Next iCol
Next iRow
ActiveWorkbook.Sheets(secondSheetName).Select
Set s3excel = wbs.ActiveSheet
For iRow = 1 To totalRow
For iCol = 1 To totalCol
s3Array(iRow, iCol) = Cells(iRow, iCol)
Next iCol
Next iRow
Когда я пытаюсь запустить это, я получаю ошибку времени компиляции в Dim s2Array (totalRow, totalCol)
, говоря, что требуется постоянное выражение. Та же ошибка возникает, если я изменяю его на Dim s2Array (1 To totalRow, 1 To totalCol)
. Поскольку я не С самого начала я не знаю, какие размеры есть, я не могу объявить это как Dim s2Array (1, 1)
, потому что тогда я получу исключение, выходящее за пределы.
Спасибо,
Джесси Смотермон