2013-03-13 2 views
0

Я пытаюсь создать макрос, который создает X количество именованных формул, которые используют формулу смещения. X будет представлять количество рядов данных (столбцов), которые находятся на листе1. Вот как я хочу, чтобы это искало одно из них, которое нужно создать.Размещение переменных внутри формул, которым требуется ссылка на ячейку

formula = offset($b$2,$a$2,0,$a$3,1) 
activeworkbook.names.add Name:="test", Refers to:=formula 

Но я собираюсь использовать цикл do, пока i = # столбцов со значениями. Так что это мой лучший выстрел на это, и я уверен, что есть много ошибок, потому что я не могу заставить ее работать:

columns = activesheet.countif((1:1),"*" 
i = 5 
do until i = columns 

'This is where i want to define my static cells location (not value) to be referenced in the formula 
    pan = cells(1,2) 
    zoom = cells(1,3) 

'This is where i want to define my dynamic cells location (not value) based on the current column 
    series = cells(2,i) 

'This is where i want to create a name formulas specific to each series 
    formula = "=offset(" & series & "," & pan & ",0" & zoom & ",1) 
    activeworkbook.names.add name:=cells(1,i), refersto:=formula 

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

Любая помощь будет отличной.

+1

Вы пробовали CELLS.ADDRESS? – 2013-03-14 09:28:22

+0

Не могли бы вы дать некоторое представление о том, что у вас есть в ячейках (2, i)? просто любой пример ... –

ответ

0

Хорошо, я понял, что я делаю неправильно. Когда я записал макрос, я не понимал, что он положил

ActiveWorkbook.Names.Add Name:="Height___zoom", RefersToR1C1:="=Data!R5C1" 

Теперь я могу просто сделать делать обкорнать с

columns = activesheet.countif((1:1),"*" 
i = 5 
do until i = columns 

pan = "R1C2" 
zoom = "R1C3" 

series = "R2C" & i 

formula = "=offset(" & series & "," & pan & ",0" & zoom & ",1) 
activeworkbook.names.add name:=cells(1,i), refersto:=formula 

Или что-то подобное. Тем не менее, нужно работать с некоторыми изломами, чтобы заставить его работать правильно, но я узнал, что формула использует R # C# для ссылки на местоположение ячейки.

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