Я надеялся написать макрос, который выполняет очень повторяющуюся задачу для меня, но вход в VBA сложнее, чем ожидалось. Я узнаю, как программировать макросы для Excel, когда у меня есть время, потому что это кажется чрезвычайно полезным, но я не могу потратить 5-12 часов на этой неделе.Напишите формулу в ячейку в зависимости от значения другой ячейки
Возможно, кто-то здесь может помочь!
У меня есть несколько файлов Excel, которые следуют этому шаблону:
Column C - Column D
--------------------
text | (empty)
number | (empty)
number | (empty)
text | (empty)
number | (empty)
text | (empty)
text | (empty)
number | (empty)
text | (empty)
number | (empty)
Где текст и номер альтернативный случайным образом в течение нескольких тысяч клеток. Мне нужно столбец D, чтобы держать, когда столбец C представляет собой число, разница с предыдущим номером, в противном случае он должен оставаться пустым:
Column C - Column D
--------------------
text | (empty)
3 | (empty)
14 | (=C3-C2) : 11
text | (empty)
16 | (=C5-C3) : 2
text | (empty)
text | (empty)
21 | (=C8-C5) : 5
22 | (=C9-C8) : 1
Так алгоритм:
var previousNumberCell
var i = 1
for all (selected) cells/rows
if (Row(i).column(C) holds number) {
Row(i).column(D).value = "=C"+i+"-"C"+previousNumberCell
previousNumberCell = i;
}
i++
End
Я не забочусь если для первой или последней ячейки это не работает.
Большое спасибо за помощь, или если вы можете указать мне, где я могу найти ответ на этот вопрос.
EDIT: это упрощенная версия проблемы, есть две вещи, которые я не знаю, как хорошо работать с макросами excel: выберите ячейку и скажите, является ли ячейка числом ... для записи, номер ячейки были преобразованы из текстового формата в число.
@Daren попробуйте сейчас. –
На какой линии? Он работает до конца. –
Вы сделали * все * изменения (добавили несколько амперсандов, а также удалили '.Text' из строк, устанавливающих формулы). –