У меня есть пользователи, которые вручную вводят данные из одного Excel, сгенерированного из системы отчетов, и вводят эти данные в сотни ячеек в день. Формат отчета, сгенерированного в excel, является статическим, поэтому я хочу сопоставить эти данные с ячейками, которые они вводят. Проблема в том, что данные являются движущейся целью.

Я хочу, чтобы формула (что-то вроде = 'data'B2) была введена в первую ячейку диапазона, если она пуста. При следующем запуске, если в первой ячейке строки есть данные, необходимо зафиксировать эти данные / удалить формулу и ввести формулу в следующую пустую ячейку в этой строке. Любая помощь будет оценена!

Это будет выглядеть примерно так:

Range = a1-a9
If cell a1 blank then = Data sheet a1
If not blank then freeze cell data/ remove formula and enter formula = Data sheet a1

(и так далее при необходимости (если не лучший код))

пока все клетки в диапазоне не заполнятся

1 ответ1

0

Вот лучшее, что я могу сделать с тем, что вы изложили:

Sub test()
Dim src As Worksheet
Set src = Sheets("Sheet3")
Dim dest As Worksheet
Set dest = Sheets("Sheet5")
Dim n As Long
Dim j As Integer
j = dest.Range("A" & Rows.Count).End(xlUp).Row + 1


For i = 1 To j
    If dest.Cells(i, 1) = "" Then
        dest.Cells(i, 1).Formula = "=Sheet3!A1"
        Else:  n = dest.Cells(i, 1)
        dest.Cells(i, 1) = n
    End If
Next
End Sub

Если A1 пусто, то будет использоваться A1:A2 иначе все в порядке. Изменить по мере необходимости.

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