Номер ячейки в excel как переменная
Перейти к содержимому

Номер ячейки в excel как переменная

Как установить переменную как номер строки в VBA?

У меня есть код, который вставляет строку в конец раздела, а затем копирует формулы сверху.

Моя единственная проблема в том, что я не уверен, как определить такую ​​переменную, как «iRow», как динамический диапазон.

Код ниже — это часть, которая копирует формулы только из строки выше. Если я установлю iRow как фиксированное число, весь код будет работать. Однако мне нужно, чтобы переменная «iRow» принимала любой номер строки, в которой значение «2» можно найти в столбце B.

Я пробовал такие вещи, как Столбцы («B: B»). Найти (What: = 2).

2 ответа

Чтобы ответить на ваш вопрос:

«Однако мне нужно, чтобы переменная« iRow »принимала любой номер строки, в котором значение« 2 »можно найти в столбце B.»

Вам, вероятно, нужно что-то вроде:

Это получит номер строки первого вхождения 2. Если не найдено значение два, это приведет к ошибке.

Если вам нужен динамический счетчик строк, вам нужен счетчик. с помощью приведенного ниже кода, если вы, например, установите для столбца значение B и используете счетчик, он всегда будет искать последнюю строку.

Я также объявил бы рабочую книгу и рабочий лист, но в этом примере я оставил это.

excel: динамическое изменение адреса ячейки (суммирование по вычисляемому адресу)

Стоит задача так написать формулу сложения содержимого ячеек, чтобы адреса ячеек были не фиксированными, а вычислялись в зависимости от содержимого других ячеек.

Как это сделать?

А я хочу что-то типа такого

user avatar

Ищем начало диапазона — смещаем ссылку с A1 вниз на B1*10. По столбцам смещения нет, задаем размер диапазона — 10 строк, 1 столбец. Суммируем значения полученного диапазона.

Формула простая, короткая и понятная, но имеет один большой недостаток. Функция СМЕЩ — одна из немногих летучих (volatile) — пересчитывается не только при изменении входных данных, но и при любых изменениях на листе, а это может стать причиной торможения вычислений.

Вариант немного сложнее, но лучше.

Две функции указывают на начало и конец диапазона: со строки B1*10+1 до строки B1*10+10.

Такая формула частично летуча — она пересчитывается только при открытии книги (для определения динамического диапазона). В открытой книге пересчет происходит только при изменении входных данных.

Как в Excel в формуле одну часть сделать переменной, а другую постоянной?

Чтобы было понятно, проведём небольшую тренировку. Напишите в какой-либо ячейке формулу, например такую =(A1-C1)/B1. Теперь "встаньте в эту ячейку", нажмите клавишу F2 (включается режим редактирования формул непосредственно в ячейке). В ячейке появится формула и курсор (в виде палочки). Переместите курсор по ячейке так, чтобы он находился либо рядом с тем адресом, которым Вы хотите управлять (в данном случае B1), либо непосредственно внутри адреса, т.е. либо так =(A1-C1)/|B1, либо так (A1-C1)/B1|, либо так (A1-C1)/B|1.

Нажмите клавишу F4. Формула примет вид =(A1-C1)/$B$1.

Нажмите клавишу F4 ещё раз. Формула примет вид =(A1-C1)/B$1.

Нажмите клавишу F4 ещё раз. Формула примет вид =(A1-C1)/$B1.

Нажмите клавишу F4 ещё раз. Формула примет первоначальный вид =(A1-C1)/B1.

Нажмите клавишу F4 ещё раз. Формула примет вид =(A1-C1)/$B$1. И так далее по кругу.

Итак, имеется 4 представления адреса B1, $B$1, B$1, $B1. Значок доллара $ означает, что следующий за ним элемент адреса при копировании формулы не будет изменяться.

Если в формуле записано B1, то при копировании формулы могут изменяться и название столбца и номер строки.

Если записано $B$1, то при копировании формулы не будут изменяться ни название столбца ни номер строки.

Если записано B$1 то при копировании формулы название столбца будет изменяться, а номер строки изменяться не будет.

Если записано $B1 то при копировании формулы номер строки будет изменяться, а название столбца изменяться не будет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *