2014-02-14 8 views
3

У меня есть это уравнение, которое я использую VBA для ввода в ячейку на моей таблице:

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],RC[-1]:R[" & CellNumber & "]C[-1],1,0)" 

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

Я пробовал добавить $ s в соответствующие позиции в формуле, но это не сработало.

+0

Вся схема ссылок «A1» или «$ A $ 1» является asinine, IMHO. Я предпочитаю использовать режим «R1C1» или «RC». Гораздо яснее, что происходит, и вам не нужно знать, где вы должны знать, где находится ячейка, на которую вы ссылаетесь. Если это 'R [-1] C [1]', это одна ячейка вверх и одна ячейка справа. Если у вас есть «R10C3», вы точно знаете, где он находится. Просто. – Enigmativity

ответ

5

Если не может быть один день вы можете заметить разницу в том, что абсолютные ссылки (I) не использовать квадратные скобки, и (б) всегда имеют ряд сразу справа от R и C, например, R1C1, что означает строки 1, Column1 - обычно выражается A1 (хотя иногда R1C1 в самой таблице, а также в макросе - когда в том, что называется ссылочным стилем R1C1).

RC[-3] является относительной ссылкой и означает, что какая-либо строка является текущей (без значения справа от R, поэтому никакого смещения от текущей строки) и трех столбцов влево (из-за отрицательного) того, что происходит для текущего столбца.

Так что, если в D1, RC[-3] ссылки точно так же, как местоположение R1C1 делает - то, что обычно называют A1.

Однако из-за относительной ссылкой, положить RC[-3] в E1, и он будет ссылаться на B1, тогда как R1C1 (как это делает $ A $ 1) относится к A1 везде, где он помещен.

Теперь в вашем примере упоминается Active Cell - здесь вы будете размещать формулу и является начальной точкой для «в той же строке, но три столбца слева». Но вы не показывали, как была выбрана активная ячейка, поэтому мы не можем определить, из какой ячейки начать, а затем местоположение (а не направление/расстояние), где вы хотите закончить.

Если на шахматной доске, например, относительные ссылки могут быть «переместите своего рыцаря двумя рядами вверх и один столбец вправо», в то время как абсолют будет «положить вашего рыцаря в квадратный король 4».

В некотором смысле, обе системы являются относительными - просто, что «абсолютный» всегда относится к верхнему левому углу (кроме случаев, когда используется макет RTL).

Это может помочь подумать о квадратных скобках вместе [ ] как «из ячейки, в которой я нахожусь».

Эквивалент «отрицательных столбцов» означает «слева» для строк «вверх».

+1

Очень полезно. Это были квадратные скобки, которые меня отбрасывали. Отличное объяснение. Мухос Грасиас. – NumberJuan

+1

Уход за работой прочитает это завтра XD – findwindow

+0

Да, я получаю относительное позиционирование. Проблема в том, что мой мозг так не думает XD. Мне намного легче обрабатывать «клетки (r + 1,1)».Мне нужна конкретная переменная, что я могу выполнить простую арифметику на XD – findwindow

Смежные вопросы