大佬们,每次运行到
temp_rows = Worksheets("Chinalon spec").Range("grade").Find(grad).Row
grade_flg = Worksheets("Chinalon spec").Range("L" & temp_rows).Value
这个代码时,就报错1004 , 应用程序定义或对象定义错误,能帮看看哪里错了吗?
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '用于选择产品
If Target.Areas.Count <> 1 Then Exit Sub
If Target.Cells.Count <> 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Target.Row >= 6 And Target.Row <= 154 Then
Worksheets("Chinalon plan").Range("B6").Value = Target.Value
End If
End Sub
Private Sub CommandButton1_Click()
Dim grad As String, mois As String, gel As String, RSV As String, temp_rows As Single, grade_flg As String
grad = Worksheets("Chinalon plan").Range("B6").Value
Worksheets("Hard copy").Select
Worksheets("Hard copy").Range("M3").Value = ""
Worksheets("Hard copy").Range("D11").Value = ""
Worksheets("Hard copy").Range("K11").Value = ""
Worksheets("Hard copy").Range("T11").Value = ""
Worksheets("Hard copy").Range("Y11").Value = ""
Worksheets("Hard copy").Range("D22").Value = ""
Worksheets("Hard copy").Range("O22").Value = ""
Worksheets("Hard copy").Range("X22").Value = ""
Worksheets("Hard copy").Range("G32").Value = ""
Worksheets("Hard copy").Range("O32").Value = ""
Worksheets("Hard copy").Range("K32").Value = ""
Worksheets("Hard copy").Range("C32").Value = ""
Worksheets("Hard copy").Range("A41").Value = ""
Worksheets("Chinalon spec").Select
temp_rows = Worksheets("Chinalon spec").Range("grade").Find(grad).Row
grade_flg = Worksheets("Chinalon spec").Range("L" & temp_rows).Value
'Dim oFoundRng As Range
'Set oFoundRng = ThisWorkbook.Names("grade").RefersToRange.Find(grad)
'If oFoundRng Is Nothing Then
'Else
'End If
If grade_flg = 1 Then
Worksheets("Hard copy").Range("X22").Value = "甲酸"
ElseIf grade_flg = 2 Then
Worksheets("Hard copy").Range("X22").Value = "98%硫酸法"
ElseIf grade_flg = 3 Then
Worksheets("Hard copy").Range("X22").Value = "间甲苯酚法"
End If
Worksheets("Hard copy").Range("M3").Value = grad
Worksheets("Hard copy").Range("D11").Value = Worksheets("Chinalon spec").Range("E" & temp_rows).Value
Worksheets("Hard copy").Range("K11").Value = Worksheets("Chinalon spec").Range("D" & temp_rows).Value
Worksheets("Hard copy").Range("T11").Value = Worksheets("Chinalon spec").Range("F" & temp_rows).Value
Worksheets("Hard copy").Range("Y11").Value = Worksheets("Chinalon spec").Range("F" & temp_rows).Value
Worksheets("Hard copy").Range("D22").Value = Worksheets("Chinalon spec").Range("C" & temp_rows).Value
Worksheets("Hard copy").Range("O22").Value = Worksheets("Chinalon spec").Range("B" & temp_rows).Value
Worksheets("Hard copy").Range("C32").Value = Worksheets("Chinalon spec").Range("J" & temp_rows).Value
Worksheets("Hard copy").Range("G32").Value = Worksheets("Chinalon spec").Range("I" & temp_rows).Value
Worksheets("Hard copy").Range("K32").Value = Worksheets("Chinalon spec").Range("H" & temp_rows).Value
Worksheets("Hard copy").Range("O32").Value = Worksheets("Chinalon spec").Range("G" & temp_rows).Value
Worksheets("Hard copy").Range("A39").Value = "特殊要求:" & Worksheets("Chinalon spec").Range("K" & temp_rows).Value
Worksheets("Hard copy").Select
End Sub
Private Sub CommandButton2_Click()
Worksheets("Hard copy").Select
Worksheets("Hard copy").Range("M3").Value = ""
Worksheets("Hard copy").Range("D11").Value = ""
Worksheets("Hard copy").Range("K11").Value = ""
Worksheets("Hard copy").Range("T11").Value = ""
Worksheets("Hard copy").Range("Y11").Value = ""
Worksheets("Hard copy").Range("D22").Value = ""
Worksheets("Hard copy").Range("O22").Value = ""
Worksheets("Hard copy").Range("G32").Value = ""
Worksheets("Hard copy").Range("O32").Value = ""
Worksheets("Hard copy").Range("K32").Value = ""
Worksheets("Hard copy").Range("C32").Value = ""
Worksheets("Hard copy").Range("X22").Value = ""
Worksheets("Hard copy").Range("A39").Value = ""
End Sub
出错的是:Worksheets("Chinalon spec").Range("grade").Find(grad).Row
主要是没找到对象,所以调用row属性时报错;
习惯不好,第一,用sh=Worksheets("Chinalon spec") 再加with
克服这个报错你得看看你的逻辑;
另:Worksheets("Chinalon spec").Range("L" & temp_rows).Value
既然知道是L列,为什么不用cells(irow,icol)替找range方法,更为简单直观