我定义的函数CALC如何在COMMAND中引用呢?Function Find(ByVal Sheet As Excel.Worksheet, ByVal Col As Long, ByVal Value) As Long
    Dim i As Long
    For i = Sheet.UsedRange.Rows To 1 Step -1
        If Sheet.Cells(i, Col).Value = Value Then Exit For
    Next
    Find = i
End FunctionSub Calc(ByVal Sheet1 As Excel.Worksheet, ByVal Sheet2 As Excel.Worksheet)
    Dim sIP As String
    Dim i As Long
    Dim j As Long
    Dim k As Long
    
    For i = 1 To Sheet2.UsedRange.Rows
        sIP = Sheet2.Cells(i, 1)
        k = InStr(1, sIP, ":")
        If k > 1 Then
            sIP = Left$(sIP, k - 1)
            j = Find(Sheet1, 1, sIP)
            If j > 0 Then
                Sheet2.Cells(i, 3) = Sheet2.Cells(i, 2) / Sheet1.Cells(j, 2)
            End If
        End If
    Next
End Sub

解决方案 »

  1.   

    可以说的明白些吗???  我想比较 3个EXCEL表中的 SHEET1
      

  2.   

    call calc(这里如何引用C盘下面的BOOK1,BOOK2,BOOK3) ???  路径如何引用???
      

  3.   

    你参数定义是SHEET表,不是文件名,如何引用??先要打开Excel表格,然后用:xlBook.Worksheets.Count 获得Sheet表的数量,用xlSheet.Name获得Sheet表的名称。
    参考我写的下面这个7楼:
    http://topic.csdn.net/u/20080127/16/2a102bc7-ea5d-4f5a-b962-4da424407fdf.html
      

  4.   

    Private Sub Command1_Click()
        Dim xlapp1 As Excel.Application
        Dim xlbook1 As Excel.Workbook
        Dim xlsheet1 As Excel.Worksheet    Dim xlapp2 As Excel.Application
        Dim xlbook2 As Excel.Workbook
        Dim xlsheet2 As Excel.Worksheet    Set xlapp1 = CreateObject("Excel.Application")
        Set xlapp2 = CreateObject("Excel.Application")    Set xlbook1 = xlapp1.Workbooks.Open("c:\book1.xls")
        Set xlbook2 = xlapp2.Workbooks.Open("c:\book2.xls")    Set xlsheet1 = xlbook1.Worksheets(1)
        Set xlsheet2 = xlbook2.Worksheets(1)    Call Calc(xlsheet1, xlsheet2)    xlapp2.Quit
        Set xlapp2 = Nothing
        xlapp1.Quit
        Set xlapp1 = NothingEnd Sub