2015-02-05 4 views
0

Я уверен, что это, наверное, самая простая вещь, но я действительно смущен этим.VBA вставляет 'в формулу

У меня есть следующий код в VBA:

For j = 0 To n 
    For i = 0 To 11 
     Dim y As Integer 
     y = Sheets("Checking").Cells(3 + j, 4 + (i * 4)).Value 
     Sheets("Checking").Cells(3 + j, 5 + (i * 4)).FormulaR1C1 = "=VLookup(A" & 3 + j & ",PPG," & y + 1 & ",0)" 
    Next i 
Next j 

Это делает то, что мне нужно это делать, однако, когда он вставляет формулу ВПР в Excel она выходит как = ВПР («A3», PPG, 2,0) с одинарными кавычками вокруг ссылки на ячейку.

Почему это делается, и как я могу его исправить?

ответ

1

Используйте .Formula, а не .FormulaR1C1. Последний демонстрирует поведение, которое вы наблюдаете по дизайну.

+0

Бога Проклятье! Я знал, что я просто глуп. Спасибо! – Moogle

0

Я бы предпочел, чтобы избежать рабочего листа вообще, так как вы используете VBA:

Sub M_snb() 
sn = [PPG] 
sp = [PPG].Columns(1) 

For j = 0 To n 
    For jj = 0 To 11 
    With Sheets("Checking").Cells(3 + j, 5 + (jj * 4)) 
     .Value = sn(Application.Match(Cells(j + 3, 1), sp, 0), .Offset(, -1).Value) 
    End With 
    Next 
Next 
End Sub