2013-03-21 4 views
0

У меня есть функция:Как изменить значение диапазона на значение ячейки?

=COUNTIF(Data!$V$6:$V$1029;Analyse_ALL!C7)

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

Как взять значение vba/значение ячейки в мою функцию?

Заранее благодарен!

+0

замените $ V $ 1029 адресом ячейки, в которой используется ваша функция, или просто вызовите свою функцию вместо нее (если ее функция вызывает сообщение, похожее на то, что вы написали суб) – 2013-03-21 11:31:57

ответ

0
  1. Вы можете иметь VBA написать полную формулу для вас в вместо просто 1029:

    Range("**Coordinates of the formula**").Formula = "=COUNTIF(Data!$V$6:$V$"& **originalVBAresult** & ";Analyse_ALL!C7)"

  2. Вы можете иметь смещение в COUNTIF которая связывает клетки вы пишете 1029 до:

    =COUNTIF(OFFSET(Data!$V$6;0;0;**Cell with 1029 in it**);Analyse_ALL!C7)

+0

Эй, сначала я пытаюсь использовать метод СМЕЩЕНИЯ, но это не так Кажется, я работаю, я получаю сообщение об ошибке по умолчанию. Как он знает, что диапазон все еще находится в столбце V – user2156096

+0

Смещение должно работать отлично, если вы на самом деле заполняете формулу, а не просто используете мою прямую напрямую ... Какое сообщение об ошибке по умолчанию вы получаете? –

+0

offcource я изменил это: ** Ячейка с 1029 в ней **, но в чем я изменяю значения 0? – user2156096

0

Вы можете использовать что-то подобное, чтобы

  1. Обнаружение последнего использованного строки в колонке V в листе Data
  2. Если эта строка превышает 6, а затем добавить эту формулу к A1, =COUNTIF(Data!$V$6:$VX;Analyse_ALL!C7) (где X является последней строки со стадии 1)

код

Sub InsertFormula() 
Dim rng1 As Range 
Set rng1 = Sheets("Data").Cells(Rows.Count, "V").End(xlUp) 
If rng1.Row > 6 Then 
[a1].FormulaR1C1 = "=COUNTIF(Data!R6C22:R" & rng1.Row & "C22,Analyse_ALL!R7C3)" 
End If 
End Sub 
+0

последний аргумент 'R [-7] C [-6]' требует дополнительной проверки перед реализацией ... –

+0

Эй, спасибо за ваш ответ. Я понимаю, что вы пытаетесь сделать, но я не понимаю R6C22, C22, -7 - 6 – user2156096

+0

его смещение Row 6 C 22 -7 влево и -6 вверх – 2013-03-21 11:59:20

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