2016-04-11 18 views
1

この行は、ランタイムエラー1004を示しているが、私は理由を理解していない:VBAは - エラー1004

ActiveCell.Formula = "=MATCH(R" & i & "C16;R" & i & "C6:R" & i & "C15;0)" 
Sub Call_Min() 

    Dim i As Integer 
    Dim limit As Integer 
    Sheets("AUX").Activate 
    limit = ActiveSheet.Range("B6").Value 

    Sheets("DATA").Activate 
    'ActiveSheet.Cells(6, 16).Select 
    'ActiveCell.Formula = "=SUM(Range("F6:I6"))" 
    For i = 6 To limit 

     'MATCH(P6;F6:O6;0) 
     ActiveSheet.Range("P" & i).Select 
     ActiveCell.Formula = "=MIN(R" & i & "C6:R" & i & "C15)" 

     ActiveSheet.Range("E" & i).Select 
     ActiveCell.Formula = "=MATCH(R" & i & "C16;R" & i & "C6:R" & i & "C15;0)" 
    Next i 

End Sub 
+1

「ActiveCell.FormulaR1C1」であり、「ActiveCell.Formula」ではありません。 – Ralph

+1

'ActiveCell.Formula'を' ActiveCell.FormulaR1C1Local ' –

答えて

2

問題は、VBAは非常に米国英語中心であるということです。だから、どちらか;の代わりに,を使用するか、または.FormulaR1C1Localを使用します。

Sub Call_Min() 
Dim i As Integer 
Dim limit As Integer 

limit = Sheets("AUX").Range("B6").Value 

Sheets("Sheet11").Activate 
'ActiveSheet.Cells(6, 16).Select 
'ActiveCell.Formula = "=SUM(Range("F6:I6"))" 
For i = 6 To limit 

     'MATCH(P6;F6:O6;0) 
     Sheets("DATA").Range("P" & i).FormulaR1C1Local = "=MIN(R" & i & "C6:R" & i & "C15)" 

     Sheets("DATA").Range("E" & i).FormulaR1C1Local = "=MATCH(R" & i & "C16;R" & i & "C6:R" & i & "C15;0)" 
Next i 
End Sub 

.Selectと理由を使用して回避する方法についてhereを参照してください。

+0

++に' Select'と 'ActiveCell'を避けるために変更しました。 –

1
Sub Call_Min() 

    Dim i As Integer 
    Dim limit As Integer 
    Sheets("AUX").Activate 
    limit = ActiveSheet.Range("B6").Value 

    Sheets("DATA").Activate 
    'ActiveSheet.Cells(6, 16).Select 
    'ActiveCell.Formula = "=SUM(Range("F6:I6"))" 
    For i = 6 To limit 

     'MATCH(P6;F6:O6;0) 
     ActiveSheet.Range("P" & i).Select 
     ActiveCell.FormulaR1C1 = "=MIN(R" & i & "C6:R" & i & "C15)" 

     ActiveSheet.Range("E" & i).Select 
     ActiveCell.FormulaR1C1 = "=MATCH(R" & i & "C16,R" & i & "C6:R" & i & "C15,0)" 
    Next i 

End Sub 

2つの変更が行われました。FormulaR1C1代わりのFormula

  1. 使用法を。
  2. ,の式に置き換えます。