Вставить формулу, если пусто, если следующая ячейка в строке в пределах диапазона, но заморозить данные из предыдущей ячейки / удалить формулу
У меня есть пользователи, которые вручную вводят данные из одного 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 ответ
Вот лучшее, что я могу сделать с тем, что вы изложили:
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
в противном случае это нормально. Изменить по мере необходимости.