在excel表中怎样编写一个vb小程序实现从一个sheet的单元格的内容拷贝到另一个sheet的单元各种?请大家帮帮忙,多谢哦!我又改写了一下小程序,但实现不了i=4时将单元格的数据复制啊?为什么?是循环语句错了吗?能帮忙改一下吗?代码如下: 
Private Sub CommandButton1_Click()'Set xlbooks = Workbooks.Open("C:\Documents and Settings\Administrator\桌面\Li Ling\新建文件夹\GUI080710.xls") Dim Sheet1 As Worksheet
 
 Dim Sheet2 As Worksheet Dim a, b, i  Set Sheet1 = Sheets("CompanyList")
  
  Set Sheet2 = Sheets("International")
   
     i = 3
  
     a = Sheet1.Cells(2, i)
  
     b = Sheet2.Cells(9, 3)
     
  Do While b > a Or b < a 
  Loop
 
     
     Sheet2.Cells(9, 3).Value = Sheet1.Cells(2, i).Value
  
     Sheet2.Cells(10, 3).Value = Sheet1.Cells(4, i).Value
     
     Sheet2.Cells(11, 3).Value = Sheet1.Cells(5, i).Value
     
     Sheet2.Cells(12, 3).Value = Sheet1.Cells(6, i).Value
     
     Sheet2.Cells(13, 3).Value = Sheet1.Cells(7, i).Value
     
     Sheet2.Cells(14, 3).Value = Sheet1.Cells(8, i).Value
     
     Sheet2.Cells(21, 3).Value = Sheet1.Cells(10, i).Value
     
     Sheet2.Cells(22, 3).Value = Sheet1.Cells(11, i).Value
     
     Sheet2.Cells(23, 3).Value = Sheet1.Cells(9, i).Value
   
     i = i + 1
     
End Sub急!请大家帮帮忙!!!!!!

解决方案 »

  1.   

    这个代码不行吗?只能实现第c列的数据复制过去,第d,e等各列的数据不能复制过去,怎么回事
    啊,这几天都急疯了唉!!!!!!!!1
      

  2.   

    没有看到循环语句,所以复制时 i 固定为 3(列C),而 i=4 时过程又结束了。
    不知道代码在做什么。
      

  3.   

    猜你的意思,是不是这样?Private Sub CommandButton1_Click()   Set xlbooks = Workbooks.Open("C:\Documents and Settings\Administrator\桌面\Li Ling\新建文件夹\GUI080710.xls")   Dim Sheet1 As Worksheet 
      Dim Sheet2 As Worksheet
      Dim a, b, i   Set Sheet1 = xlbooks.Sheets("CompanyList")   
      Set Sheet2 = xlbooks.Sheets("International")   
      i = 3   
      a = Sheet1.Cells(2, i)  
      b = Sheet2.Cells(9, 3)     
      Do While b > a Or b < a 
        Sheet2.Cells(9, 3).Value = Sheet1.Cells(2, i).Value   
        Sheet2.Cells(10, 3).Value = Sheet1.Cells(4, i).Value     
        Sheet2.Cells(11, 3).Value = Sheet1.Cells(5, i).Value    
        Sheet2.Cells(12, 3).Value = Sheet1.Cells(6, i).Value     
        Sheet2.Cells(13, 3).Value = Sheet1.Cells(7, i).Value     
        Sheet2.Cells(14, 3).Value = Sheet1.Cells(8, i).Value     
        Sheet2.Cells(21, 3).Value = Sheet1.Cells(10, i).Value    
        Sheet2.Cells(22, 3).Value = Sheet1.Cells(11, i).Value     
        Sheet2.Cells(23, 3).Value = Sheet1.Cells(9, i).Value   
        i = i + 1    a = Sheet1.Cells(2, i)
      Loop        
    End Sub 
      

  4.   


      Do While b > a Or b < a 
        Sheet2.Cells(9, 3).Value = Sheet1.Cells(2, i).Value   
        Sheet2.Cells(10, 3).Value = Sheet1.Cells(4, i).Value     
        Sheet2.Cells(11, 3).Value = Sheet1.Cells(5, i).Value    
        Sheet2.Cells(12, 3).Value = Sheet1.Cells(6, i).Value     
        Sheet2.Cells(13, 3).Value = Sheet1.Cells(7, i).Value     
        Sheet2.Cells(14, 3).Value = Sheet1.Cells(8, i).Value     
        Sheet2.Cells(21, 3).Value = Sheet1.Cells(10, i).Value    
        Sheet2.Cells(22, 3).Value = Sheet1.Cells(11, i).Value     
        Sheet2.Cells(23, 3).Value = Sheet1.Cells(9, i).Value   
        i = i + 1
        if i=10 then exit do'这里要加一句退出语句,条件自已加,否则会死循环
        a = Sheet1.Cells(2, i)
      Loop        
      

  5.   

    他是想,Sheets("International")中 C9单元格与  Sheets("CompanyList") 中的C D E....中的第二行数据相比较
    当相等的时候,复制相等的那列下面的内容到指定位置
    我的代码:
    Private Sub cmdCopy_Click()
        Dim ColiumnIndex As Long
        Dim Sheet1 As Worksheet
        Dim Sheet2 As Worksheet
        Set Sheet1 = Sheets("CompanyList")
        Set Sheet2 = Sheets("International")
        
        ColiumnIndex = FindColumnIndex(Sheets("International").Cells(9, 3))
        
        If ColiumnIndex = 0 Then
          MsgBox "没有找到此客户资料!"
          Exit Sub
        End If
      
        Sheet2.Cells(10, 3) = Sheet1.Cells(4, ColiumnIndex)
        
        Sheet2.Cells(11, 3) = Sheet1.Cells(5, ColiumnIndex)
        
        Sheet2.Cells(12, 3) = Sheet1.Cells(6, ColiumnIndex)
        
        Sheet2.Cells(13, 3) = Sheet1.Cells(7, ColiumnIndex)
        
        Sheet2.Cells(14, 3) = Sheet1.Cells(8, ColiumnIndex)
        
        Sheet2.Cells(21, 3) = Sheet1.Cells(10, ColiumnIndex)
        
        Sheet2.Cells(22, 3) = Sheet1.Cells(11, ColiumnIndex)    Sheet2.Cells(23, 3) = Sheet1.Cells(9, ColiumnIndex)
     
    End Sub
    Private Function FindColumnIndex(ByVal strBuy As String) As Long
        Dim I As Long
        Dim oSheet As Worksheet
        Set oSheet = Sheets("CompanyList")
        I = 3
        While Len(oSheet.Cells(2, I)) > 0
           If oSheet.Cells(2, I) = strBuy Then
              FindColumnIndex = I
              Exit Function
           End If
           I = I + 1
        Wend
    End Function
      

  6.   

    谢谢大家,问题解决了。特别感谢fvflove哦!