(VBA) Попытка создать массив из 4 строк и n столбцов - PullRequest
0 голосов
/ 27 февраля 2019
Sub abcd()

Dim numcomps As Integer
numcomps = Range("B3").Value
Dim constants() As Integer
ReDim constants(1 To 4, 1 To numcomps)
Dim i As Integer, j As Integer, k As Integer, compnum As Integer

For k = 1 To numcomps
compnum = Cells(k, 7).Value
   For i = 1 To 4
   constants(i, k) = Cells((compnum + 6), (i + 2)).Value

   Next i
Next k

MsgBox (constants(1, 1))
MsgBox (constants(2, 1))
MsgBox (constants(3, 1))


End Sub

По сути, я пытаюсь создать массив из 4 строк и n столбцов, где n задано пользователем как numcomps.Каждый столбец будет состоять из 4 констант, собранных из таблицы в электронной таблице.Кажется, код переписывает значения в массиве каждый раз, когда он зацикливается, вместо создания нового столбца.Что мне нужно добавить / изменить?

1 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте эту настройку, где начать сбор данных

Sub MultiDArray()

    ' Define variables
    Dim arrayColumns As Integer
    Dim arrayRows As Integer
    Dim constants() As Integer
    Dim initialRow As Integer
    Dim initialColumn As Integer
    Dim rowCounter As Integer
    Dim columnCounter As Integer

    ' Define how many rows
    arrayRows = 4

    ' Define how many columns
    arrayColumns = Range("B3").Value

    ' Define row to begin gathering data
    initialRow = 7

    ' Define column to begin gathering data
    initialColumn = 2

    ' Redimension array to number of rows and columns
    ReDim constants(1 To arrayRows, 1 To arrayColumns)


    ' Loop through each row
    For rowCounter = 1 To arrayRows

        ' Loop through each column
        For columnCounter = 1 To arrayColumns

            ' Gather data into array
            constants(rowCounter, columnCounter) = Cells(rowCounter + initialRow, columnCounter + initialColumn)

            ' For debugging purposes
            Debug.Print "Cell: " & Cells(rowCounter + initialRow, columnCounter + initialColumn).Address, "Row: " & rowCounter, "Column: " & columnCounter, "Value:" & constants(rowCounter, columnCounter)

        Next columnCounter

    Next rowCounter

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...