全民一起VBA基础篇第十课:工作簿、单元格

打开不同的EXCEL文件并汇总

Option Explicit

Sub 季度汇总()
    
    Dim i, j, k, fileName, wkPath
    Dim w As Worksheet, r As Worksheet, wb As Workbook
    
    '首先,让 r 代表当前工作簿(“季报.xlsm”)的汇总表
    Set r = ActiveWorkbook.Worksheets("季度汇总")
    
    'ActiveWorkbook.Path属性可以返回本工作簿所在的文件夹,
    '因此当其他待处理工作簿跟本工作簿在同一文件夹下时,可以用Path找到它们。
    wkPath = ActiveWorkbook.Path
        
    '循环生成每个月的文件名,并打开相应工作簿
    For i = 4 To 6
        fileName = i & "月.xlsx"  '标记文件名,这个例子中的名字都比较规律
              
        Set wb = Workbooks.Open(wkPath & "\" & fileName)
        
        '让 w 指向该月文件的第一张工作表(即月报表)
        Set w = wb.Worksheets(1)
                       
        '循环扫描该工作表的第3-10行,依次加到汇总表的同一行
        For k = 3 To 10
            For j = 3 To 6
            '以下四行代码可以用循环的方式改写,更加方便
            r.Cells(k, j) = r.Cells(k, j) + w.Cells(k, j)
            Next j
        Next k
        '关闭该月的工作簿文件,保持桌面清洁
        wb.Close
    Next i
    
    '新建一个工作簿文件,并让 wb 指向该工作簿
    Set wb = Workbooks.Add
    
    '将季报汇总的工作表复制到新的工作簿中第一张工作表之前(这句话还不是很熟)
    r.Copy before:=wb.Worksheets(1)
    
    '将新工作簿即 wb 命名保持,然后关闭。
    '在大多数版本的Excel中,不指定文件夹时,文件默认保存到当前目录下。
    wb.SaveAs wkPath & "\季度报表.xlsx"     '保存也要加完整路径名
    wb.Close

End Sub

Range 对象

range代表单元格的对象,cells只是交代经纬度坐标

Option Explicit
Sub 操作单元格中的range()
Dim r1 As Range
Dim r2 As Range
Dim r4 As Range
Set r1 = Range("A3") '用字符串来表示,和cell不同
Set r2 = Range("A3:B7")
Set r4 = Range(Cells(8, 3), Cells(6, 6)) '单独写不需要双引号

    r1.Value = 5 '给r1中所有赋值

    r2 = 5 'value可以省略
    r2.ClearContents '清除内容,保留格式
    r2.ClearFormats '清除格式 保留内容,直接写r3.clear 可以全部清除
    r2.Font.Bold = True     '加粗
    r2.Interior.Color = RGB(200, 200, 20)       '单元格的属性用interior
    r2.Merge '用来合并

    With r4.Font
    .Color = RGB(255, 0, 0) '用RGB函数
    .Size = 15
    End With '合并开头

End Sub

application

application 代表excel本身,终极大BOSS

可以通过application调用系统公式

Option Explicit
Sub 极大值()
Dim r As Range, m As Integer
Application.DisplayAlerts = False   '关掉提示框
Set r = Range("C3:F10")     'set不要忘记
    m = Application.WorksheetFunction.Max(r)    '调用系统公式
    Cells(12, 7) = m
    Application.DisplayAlerts = True '设置回来,以免出问题
    'application.quit 关闭excel文件
End Sub

总结

在这里插入图片描述

发布了26 篇原创文章 · 获赞 5 · 访问量 1101

猜你喜欢

转载自blog.csdn.net/qq_43568982/article/details/103771164