我在这一行收到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 :(得分: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