2016-02-21 8 views
0

Кто-нибудь знает, как я могу получить адрес диапазона для rng3 для отображения в моей формуле суммы в качестве относительной ссылки (например, B2: B4) вместо названия диапазона?Как получить определенный диапазон адресов для отображения в качестве относительной ссылки в формуле?

Формула сумма Я пытаюсь использовать его для дает значение 0.

Я пытаюсь скопировать формулу вниз остальной части колонны D.

Это для диапазона на основе последний столбец в электронной таблице, который меняется каждую неделю.

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

Sub needhelp() 
Dim rng1 As Range 
Dim rng2 As Range 
Dim rng3 As Range 
Dim rng4 As Range 
Dim fillrange As Range 
Dim cell1 As Range 
Dim cell2 As Range 
Dim cellAddress As Range 

    Range("G1").Select 
    Range("G1").End(xlToRight).Select 
    ActiveCell.Offset(1, 0).Select 
    ActiveCell.Offset(0, -2).Select 
    Set cell1 = ActiveCell 
    Set rng1 = Cells.Find("*", [cell1], , , xlByColumns, xlNext) 
    ActiveCell.Offset(0, 2).Select 
    Set cell2 = ActiveCell 
    Set rng2 = Cells.Find("*", [cell2], , , xlByColumns, xlPrevious) 
    If Not rng2 Is Nothing Then 
     Set rng3 = Range([cell1], [cell2]) 
     MsgBox "Range is " & rng3.Address(0, 0) 
     Application.Goto rng3 
     MsgBox "Range is " & rng3.Address(0, 0) 
     Application.Goto rng3 
     Range("D2").Select 

' *** Here is when I need help. 

     Worksheets("Confidential").Range("D2").Formula = "=SUM(rng3)/3" 
     ActiveCell.Offset(0, -1).Select 
     Selection.End(xlDown).Select 
     ActiveCell.Offset(0, 1).Select 
     Range(Selection, Selection.End(xlUp)).Select  
     Cells.Select 
     Cells.EntireColumn.AutoFit 
    End If 

End Sub 

Я также попытался следующие (не работает):

'  Debug.Print Range("rng4").Address(External:=True) 

'  Try to use this to fill average range with formula using loop (some other time): 


'  ActiveWorkbook.Names.Add Name:="fillrange", RefersTo:=Selection 

'  Range("D2").Select 

' ActiveWorkbook.Names.Add Name:="", RefersTo:=Selection 

Еще раз спасибо за чтение.

+0

Был ли мой ответ, ответили на ваш вопрос? Если это так, отметьте его как правильно, щелкнув зеленую галочку в левой части ответа. Это то, что вы можете сделать. Он закроет вопрос как ответ. –

ответ

1

Ваша формула должна быть:

"=SUM(" & rng3.Address(0,0) & ")/3" 

Вы должны процитировать из УВА.

Кроме того, все .Select замедляют код. См. THIS POST, чтобы избежать его использования. Это ускорит выполнение кода.

+0

Ты мужчина! Благодаря! Я попробую в понедельник, а затем отметьте это как «Отвечено». Это s Да, я видел это сообщение на прошлой неделе, когда я пытался найти свой ответ здесь. Я собираюсь изменить все порции, которые есть после того, как я заработаю весь макрос. Большое спасибо! –