У меня есть файл Excel, который ищет и рассчитывает данные на определенную дату. Он работает следующим образом: вы вводите дату в определенную ячейку (вход) и на том же листе появляются необходимые данные (20 ячеек). (расчеты и т. д. сделаны на другом листе)

Теперь я хочу создать файл Excel, который суммирует все эти данные без необходимости самостоятельно вводить дату и копировать данные вручную.

Макрос должен сделать следующее: для каждой даты измените значение этой конкретной входной ячейки, скопируйте выходные данные и вставьте их в новый лист (рядом с датой).

Есть идеи, как это можно сделать? Я давно работал с макросами и забыл большую часть синтаксиса.

1 ответ1

0

как я понимаю, вы получили массив входных данных
dim my_array(10) это ваш массив, который хранит 10 значений
скажем, у вас есть 3 рабочих листа, во-первых, где вы вводите данные "Sheet1", во-вторых, где вы хотите сохранить вывод "Sheet2", и в-третьих, где все вычисления сделаны, мы не будем их трогать.
давайте начнем с заполнения нашего массива значениями:
my_array = Array(1, 2, 3, ..., 9)
Теперь мы сделаем цикл, чтобы пройти через все входные значения и сохранить выходные значения:
for i = 1 to 10
Worksheets(1).Range("A1").Value = my_array(i)

где "А1" - это ячейка на первом листе, куда вы вставляете свои данные. давайте предположим, что вы получаете вывод в ячейке "A2" на sheet1 и хотите сохранить его в столбце "A" в sheet2:
Worksheets(2).Cells(i, 1).Value = Worksheets(1).Range("A2").Value
не забудьте закрыть цикл:
Next
таким образом, мы получаем код, который принимает 10 жестко закодированных значений и сохраняет вывод в столбце "А" на листе 2, полный текст:
dim my_array(10)
Private Sub macro1()
my_array = Array(1, 2, 3, ..., 9)
for i = 1 to 10
Worksheets(1).Range("A1").Value = my_array(i)
Worksheets(2).Cells(i, 1).Value = Worksheets(1).Range("A2").Value
Next
End sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .