2017-01-08 33 views
0
Sub main() 

Dim i, j As Integer 

Worksheets("sheet1").Activate 
Worksheets("sheet2").Activate 

For i = 1 To 200 
    For j = 1 To 200 
     If Worksheets("sheet1").Cells(i, 1) = Worksheets("sheet2").Cells(j, 1) Then 
      Worksheets("sheet1").Cells(i, 1).inerior.Color = vbRed 
     End If 
    Next j 
Next i 

End Sub 

なぜエラーを返すのですか?すべてが正しいと思われます。オブジェクトはこのプロパティまたはメソッドをサポートしていないと言います。 私は2013年を試しました。オブジェクトはvbaでこのプロパティまたはメソッドをサポートしていません

+1

あなたは** Typo **を持っています、それは 'Worksheets(" sheet1 ")でなければなりません。セル(i、1).Interior.Color = vbRed'で、' inerior'ではありません。 –

+0

'Dim i As Integer、j As Integer'、そうでなければ' i'が 'As Variant'として定義されます。また、Activateから遠ざかる方がよいでしょう。 –

+0

ドットの後ろの小文字は、通常、.ineriorが存在しないという記号です。 http://stackoverflow.com/questions/21399691/excel-vba-highlight-duplicates-in-active-column – Slai

答えて

0

すぐにこのエラーを削除し、今後のエラーを避けるためにあなたのコードに行きましょう。そのほとんどはShai Radoのコメントでカバーされています。


Dim i, j As Integer 

これは、バリアントとしてiを宣言しています。あなたは、このような具体的にする必要があります。

Dim i As Integer, j As Integer 

次のコードは、何もしないされ、削除することができます。 ActiveSheetオブジェクトを使用する場合は、ワークシートをActivateにする必要があります。これは非常に落胆しています。

Worksheets("sheet1").Activate 
Worksheets("sheet2").Activate 

例外は、Excelを使用すると、マクロが実行された後で、サブと呼ばれ、そこから1への別のシートをアクティブにしたい場合は、その後、あなたはサブの終わりにこれらの.Activateのステートメントのいずれかを置くことができています


Worksheets("sheet1").Cells(i, 1).inerior.Color = vbRed 

ここにタイプミスがあります。 ineriorではなくInteriorです。通常、これらのエラーは、プロパティが期待どおりに大文字に変換されていないことがわかるため、確認できます。


あなたはこれらのシートは中であるWorkbook指定していません。Sheet1Sheet2は、デフォルトの名前であるため、あなたのサブを実行しているときに、2つの以上のワークブックを開いている場合は、特に危険です。 Excelが混乱し、誤ったブックにコードを実行することがあります。ここではこれを回避するいくつかの方法があります:

  1. 変更Worksheets("Sheet1").Cells()
  2. ThisWorkbook.Worksheets("Sheet1").Cells()にシートオブジェクト名を使用します。これらは変更していない場合は、単にSheet1Sheet2などです。例えば。 Sheet1.Cells()


は、だからここに私はまた、あなたが それが何をするか、というよりも mainを説明し、より良いものにあなたのサブに名前を付けることを助言するあなたの最終的なコード

Sub main() 

Dim i as Integer, j As Integer 

For i = 1 To 200 
    For j = 1 To 200 
     If Sheet1.Cells(i, 1) = Sheet2.Cells(j, 1) Then 
      Sheet1.Cells(i, 1).Interior.Color = vbRed 
     End If 
    Next j 
Next i 

'Sheet2.Activate 
End Sub 

です。

関連する問題