0
点赞
收藏
分享

微信扫一扫

第一次自学VBA


希望的效果如图所示

 

第一次自学VBA_c

 

Sub CopyClassAvgCell()
    Dim a As Range
    Dim i As Integer
    Dim cell As String
    Dim nameCell As String
    Dim schoolAvgCell As String
    Dim classAvgCell As String
    Dim mergeCell As String
    Dim totalAvgCell As String
    
    
    Dim dstCell As String
    Dim j As Integer
    
    ''''''''''''''''''''''''从Sheet1获取关键数据到Sheet2
    j = 1
    For i = 7 To 511 Step 8
        Worksheets("Sheet1").Activate
        cell = "Q" + CStr(i)
        nameCell = "C" + CStr(i - 2)
        Range(cell).Select
        Selection.Copy
        
        
        Worksheets("Sheet2").Activate
        
        
        dstCell = "C" + CStr(j)
        Range(dstCell).PasteSpecial xlPasteValues 
        
        dstCell = "D" + CStr(j)
        schoolAvgCell = "R" + CStr(i)
        Range(dstCell).Select
        ActiveCell.FormulaR1C1 = Worksheets("Sheet1").Range(schoolAvgCell).Value
        
        dstCell = "A" + CStr(j)
        Range(dstCell).Select
        ActiveCell.FormulaR1C1 = CStr(j)
        
        dstCell = "B" + CStr(j)
        Range(dstCell).Select
        ActiveCell.FormulaR1C1 = Worksheets("Sheet1").Range(nameCell).Value
                
        j = j + 1
        
    Next i
    
    '''''''''''''''''''''''' 以C为主键排序Sheet2中的数据
    Worksheets("Sheet2").Range("C1").Sort _
            Key1:=Worksheets("Sheet2").Columns("C"), _
            Header:=xlGuess
            
            
    '''''''''''''''''''''''' 将Sheet2的数据重新插回到Sheet1
    j = 1
    For i = 7 To 511 Step 8
        Worksheets("Sheet1").Activate
        mergeCell = "C" + CStr(i) + ":R" + CStr(i)
        Range(mergeCell).Select
        Selection.Merge
        
        dstCell = "C" + CStr(i)
        
        totalAvgCell = "A" + CStr(j)
        classAvgCell = "C" + CStr(j)
        schoolAvgCell = "D" + CStr(j)
        Range(dstCell).Value = "平均分1" + CStr(Worksheets("Sheet2").Range(classAvgCell).Value) + "  " + _
            "平均分2" + CStr(Worksheets("Sheet2").Range(schoolAvgCell).Value) + "  " + _
            "平均分3" + CStr(Worksheets("Sheet2").Range(totalAvgCell).Value)
                
        j = j + 1
        
    Next i
    
    
    
                  
End Sub

 

 

 

 

 

举报

相关推荐

sql第一次

记录第一次

第一次打卡

jQuery第一次课

假期第一次总结

第一次python作业

python 第一次作业

0 条评论