2017-06-15 7 views
0

機能:VBA:「定義またはオブジェクト定義のエラー」の場合で、その後、私はこのラインで私のVBAマクロのエラーを取得

If Sheets("Check Foil").Cells(y, 15) = Sheets("Data").Cells(x, 19) And Sheets("Check Foil").Cells(y, 24).Value <> "0" Then 

をこれが私のコードです:

x = 1 
    y = 16 
    Do 
     If Sheets("Check Foil").Cells(y, 15) = Sheets("Data").Cells(x, 19) And Sheets("Check Foil").Cells(y, 24).Value <> "0" Then 
      Sheets("Data").Cells(x, 21).Copy 
      Sheets("Check Foil").Cells(y, 21).PasteSpecial xlPasteAll 
      Sheets("Check Foil").Cells(y, 22) = "Anode Foil not scan completely" 
      With Sheets("Check Foil").Range(Sheets("Check Foil").Cells(y, 21), Sheets("Check Foil").Cells(y, 24)).Borders 
        .LineStyle = xlContinuous 
        .Weight = xlThin 
        .ColorIndex = xlAutomatic 
      End With 
      y = y + 1 
     Else 
      Sheets("Check Foil").Cells(y, 22) = "Foil Info Not Found" 
     End If 
     x = x + 1 
    Loop Until Sheets("Check Foil").Cells(y, 15) = "" 

    Sheets("Check Foil").Range("M16:X1016").VerticalAlignment = xlCenter 
    Sheets("Check Foil").Range("M:M").HorizontalAlignment = xlCenter 
    Sheets("Check Foil").Range("N16:O1016").HorizontalAlignment = xlLeft 
    Sheets("Check Foil").Range("P16:V1016").HorizontalAlignment = xlRight 

    y = 16 
    Do 
     If Sheets("Check Foil").Cells(y, 24) <= Application.WorksheetFunction.Sum(Sheets("Check Foil").Cells(y, 23) - (Sheets("Check Foil").Cells(y, 23) * 0.1)) And Sheets("Check Foil").Cells(y, 24).Value <> "0" Then 
      Sheets("Check Foil").Range(Sheets("Check Foil").Cells(y, 13), Sheets("Check Foil").Cells(y, 24)).Interior.ColorIndex = 6 
     End If 
     y = y + 1 
    Loop Until Sheets("Check Foil").Cells(y, 14) = "" 

    Worksheets("Check Foil").Activate 
    ActiveSheet.Range("A1").Select 

    MsgBox "Program Complete Run" 

End Sub 
+0

この行は、同じエラーを取得することができる:シートは、( "フォイルをチェックする")場合には、細胞(Y、24)<= Application.WorksheetFunctionセル(y、23)*(Sheets( "Check Foil"))セル(y、23) - (Sheets( "Check Foil" 24).Value <> "0" Then – Falhuddin

+0

'x'、' y'、 'Sheets(" Check Foil ")、セル(y、15)'、 'Sheets(" Data ")セルの値は何ですか? (x、19) 'と' Sheets( "Foilをチェックする)セルが(y、24)'コードがクラッシュしたとき? – YowE3K

答えて

0

あなたの実際の問題最初の比較で ".value"がありません。 そう:

If (Sheets("Check Foil").Cells(y, 15).Value = Sheets("Data").Cells(x, 19).Value) And (Sheets("Check Foil").Cells(y, 24).Value <> "0") Then 
      Sheets("Data").Cells(x, 21).Copy 

しかし、これは改善され得る:

Dim wb As Workbook 
Dim ws_foil As Worksheet 
Dim ws_data As Worksheet 

Set wb = ThisWorkbook 
Set ws_foil = wb.Sheets("Check Foil") 
Set ws_foil = wb.Sheets("Data") 

foil_data = ws_foil.Cells(y, 15).Value 
data_data = ws_data.Cells(x, 19).Value 

foil_data1 = ws_foil.Cells(y, 24).Value 

If ((foil_data = data_data) And (foil_data1 <> 0)) Then 
    ws_data.Cells(x, 21).Copy 
End If 
+0

'.Value'は(間接的に)' Range'オブジェクトのデフォルトプロパティです。個人的に私はいつもそれを使うのが好きですが、**それなしでは**動作します。 – YowE3K

関連する問題