用vba中的偏移量计算出错

用vba中的偏移量计算出错

问题描述:

我创建了一个宏来执行各种计算。然而,在这部分代码,它说有错误(所需的对象)在管线用vba中的偏移量计算出错

cell2.Value = cell2.Offset(0, -2).Value * cell2.Offset(0, -1).Value 

我提供的代码的整个部分,其中这条线属于:

For Each cell2 In Range("F2:F" & lastrow2) 
If cell2.Offset(0, -3).Value = "ROMANIA" Then 
cell2.Value = cell2.Offset(0, -2).Value/cell2.Offset(0, -1).Value 
Else 
cell2.Value = cell2.Offset(0, -2).Value * cell2.Offset(0, -1).Value 
End If 
Next cell2 
+1

FWIW - 您的代码适合我。 – YowE3K

+0

我对lastrow2做了一个错误,因为我设置了填满A列的值:p正在工作! –

这是一个办法做到这一点:

Option Explicit 

Public Sub TestMe() 

    Dim cell2  As Range 
    Dim lastrow2 As Long 
    Dim wks   As Worksheet 

    lastrow2 = 55 'or calculated value 

    Set wks = Worksheets("SomeName") 

    For Each cell2 In wks.Range("F2:F" & lastrow2) 
     If cell2.Offset(0, -3).Value = "ROMANIA" Then 
      cell2.FormulaR1C1 = "=RC[-2]/RC[-1]" 
      'cell2.Formula = cell2.Offset(0, -2).Value/cell2.Offset(0, -1).Value 
     Else 
      cell2.FormulaR1C1 = "=RC[-2] * RC[-1]" 
      'cell2.Formula = cell2.Offset(0, -2).Value * cell2.Offset(0, -1).Value 
     End If 
    Next cell2 

End Sub 

建立在Excel中一些公式和使用宏录制,看看他们是如何转换为VBA。

+0

不应该是cell2.FormulaR1C1 =“= RC [-2]/RC [-1]”? –

+1

@PericlesFaliagas - 我想应该。 – Vityata

+1

是不是第二个乘法? – QHarr