ls 发表于 2012-3-5 22:13


wuhairong2011 发表于 2012-3-6 11:24

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim book As Workbook
   If Sh.Name = "Sheet1" And Target.Address = "$E$5" Then
      Set book = Workbooks.Open(ThisWorkbook.Path & "/价格表.xls")
   End If
Dim z As Integer
Dim c As Integer
With book
z = Application.CountIf(., Range("e5"))
If z < 0 Then
    Range("e7") = "查找不到"
    Exit Sub
Else
    c = ..Find(Range("e5"), , , , , xlNext).Row
    Range("e7") = .Cells(c, 2)
    book.Close
End If
End With
End Sub
这是我做的成果,结果是错的,,但坚持交业,等待校长给我们讲解做业

君子豹变 发表于 2012-3-6 12:46

君子豹变 发表于 2012-3-3 15:56 static/image/common/back.gif
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Dim JJB As Workbook
...

谢谢老师改作业。可是我第一次的错了吗?我不知道。

jiahua1010 发表于 2012-3-6 15:54

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim wsh As Worksheet
    Dim i As Integer
    Dim a, b As String
    If Sh.Name = "Sheet1" And Target.Address = "$E$5" Then
      a = Range("E5")
      Workbooks.Open ThisWorkbook.Path & "/价格表.xls"
      Set wsh = Workbooks("价格表.xls").Sheets("sheet1")
      For i = 1 To wsh.Range("A65536").End(xlUp).Row
            If wsh.Cells(i, 1) = a Then
                b = wsh.Cells(i, 2)
                Exit For
            End If
      Next
      ActiveWorkbook.Close
      If b <> "" Then
            Range("E7").Value = b
      Else
            Range("E7").Value = "查找不到"
      End If
    End If
End Sub

DQ空气 发表于 2012-3-6 17:20

:(什么都锁着还用发表啊   学生看什么啊

开心妙妙 发表于 2012-3-6 18:46

本帖最后由 开心妙妙 于 2012-3-6 18:49 编辑

B:08开心妙妙

老师,无论如何最终还是没把这题搞掂。
对象变量那里不知道怎样传递
为什么我把 Workbooks("价格表.xls").Close 放在Next i前面
怎么就没 With Workbooks("价格表.xls").Sheets("Sheet1") 这个对象了呢?:@:@


jiahua1010 发表于 2012-3-7 09:50

看来我是交晚了,也不知道我的结果对不对。

laoau126 发表于 2015-6-13 17:48

4556666


页: 1 2 3 4 5 6 [7]
查看完整版本: 统计VBA学习小组正式组第八课(第九讲)的积分帖之作业上交贴(第10周)