Ссылка на ячейку с формулой в ней VBA - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь построить функцию, которая будет использоваться в качестве фиксированной контрольной точки на листе, чтобы иметь возможность выводить формулы без значения в созданной функции, изменяющего диапазон Hcom (): 1, 1, 1,!Hcom в 2, 2, 2,! Hcom и т. Д.

Это если для использования во второй функции, которая не является фиксированной, я попытался Dim rng как Range, я попытался написать ThisCell вместо Thiscellно vba автоматически исправляет эту ячейку.Погуглил немного.Я попытался написать If с = 1 или 2 или 3. Я попробовал Case select.

Function Hcom()
Dim rng as Range
Application.Volatile
Set rng = Application.Thiscell.Offset(0, 1)
Select Case rng
Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
Hcom = Range("J7") / 5
Case Else
Hcom = ""
End Select
End Function

Я хочу, чтобы он ссылался на себя со смещением (0,1), чтобы он прочитал списокценности.После нахождения значения, которое я хочу или не хочу, следует подождать, пока ячейки изменятся на листе?(Первый раз с использованием Application.Volatile) Вместо этого я получаю #Value, а также эту ошибку, когда я запускаю его из VBA

Ошибка времени выполнения '1004': метод 'ThisCell' объекта'_Application 'ошибка

После отладки эта строка подсвечивается

rng = Application.Thiscell.Offset(0, 1)

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019
Function Hcom(ThisCell As Range)

Dim rng As Range
Application.Volatile
Set rng = Application.ThisCell.Offset(0, 1)
Select Case rng
Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
Hcom = Range("J7") / 5
Case Else
Hcom = ""
End Select
End Function

Добавление переменной?Чтобы первый ряд исправил это, имея ссылку на себя, а затем сместив.Не уверен, почему это работает:)

0 голосов
/ 26 сентября 2019

Попробуйте:

Function Hcom(YourOffset As Range, YourFixed As Range) As Variant
'Application.Volatile
Select Case YourOffset
    Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
        Hcom = YourFixed / 5
    Case Else
        Hcom = ""
End Select
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...