VBA练习——填充和清除数据

本代码是针对书《别怕,Excel_VBA其实很简单》示例文件_ExcelHome\第4章\4.7.7 批量对数据进行分类.xls 的练习,不同于书本中的代码

Sub test()

Dim i As Long
Dim rng As Range
Dim classname As String
Dim optype As String
Dim shtindex As Integer
Dim sht As Worksheet

i = 2
optype = "clearData" 'fillData,clearData
classname = Cells(i, "C").Value

Application.ScreenUpdating = False

If optype = "fillData" Then

    Do While classname <> ""
       Set rng = Worksheets(classname).Range("A65536").End(xlUp).Offset(1, 0)
       Cells(i, "A").Resize(1, 7).Copy rng
       i = i + 1
       classname = Cells(i, "C").Value
    Loop

ElseIf optype = "clearData" Then

   For Each sht In Worksheets
       If sht.Name <> "成绩表" And sht.Name <> "版权声明" Then
           sht.Range("A2:G65536").ClearContents
       End If

   Next

End If

Application.ScreenUpdating = True

End Sub
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Excel VBA练习题是一种通过使用Excel VBA编程语言来提升对Excel功能的掌握和技能的练习。以下是一个关于Excel VBA练习题的简单例子: 假设有一个包含学生成绩的Excel表格,其中包括学生姓名、数学成绩和英语成绩。我们需要编写一个Excel VBA宏,实现以下功能: 1. 给出一个指定的学生姓名,根据输入的姓名查询并显示该学生的数学和英语成绩。 2. 计算每个学生的总分,并将总分显示在表格的相应列。 3. 计算每门课程的平均分,并将平均分显示在表格的底部。 为了解决这个问题,我们可以编写以下VBA宏代码: ```vba Sub GetStudentGrade() Dim studentName As String Dim mathGrade As Double Dim englishGrade As Double ' 获取学生姓名 studentName = InputBox("请输入学生姓名:") ' 查询并显示学生的数学和英语成绩 mathGrade = Application.WorksheetFunction.VLookup(studentName, Range("A2:C10"), 2, False) englishGrade = Application.WorksheetFunction.VLookup(studentName, Range("A2:C10"), 3, False) MsgBox "学生 " & studentName & " 的数学成绩为 " & mathGrade & ",英语成绩为 " & englishGrade ' 计算每个学生的总分 For i = 2 To 10 Cells(i, 4).Value = Cells(i, 2).Value + Cells(i, 3).Value Next i ' 计算每门课程的平均分 Cells(11, 2).Value = Application.WorksheetFunction.Average(Range("B2:B10")) Cells(11, 3).Value = Application.WorksheetFunction.Average(Range("C2:C10")) End Sub ``` 通过运行上述宏,我们可以实现输入学生姓名后,自动查询并显示该学生的数学和英语成绩,并计算每个学生的总分和每门课程的平均分。这是一个简单的Excel VBA练习题例子,通过类似的练习,我们可以进一步掌握和运用Excel VBA的编程技巧。 ### 回答2: Excel VBA练习题是用于熟悉和学习Excel VBA编程的一种练习方式。下面是一个简单的练习题: 题目:创建一个Excel宏,在选定的单元格中显示当前日期和时间,并将字体颜色设为红色。 解答: 1. 打开Excel,按下 ALT + F11 进入VBA编辑器。 2. 在VBA编辑器中,选择插入 -> 模块,插入一个新的VBA模块。 3. 在新的模块中,编写以下代码: ``` Sub DisplayDateTime() Range("A1").Value = Now Range("A1").Font.Color = RGB(255, 0, 0) End Sub ``` 4. 保存并关闭VBA编辑器。 5. 回到Excel界面,选中一个单元格,比如A1。 6. 按下 ALT + F8 打开宏对话框。 7. 选择刚刚创建的宏 "DisplayDateTime",并点击运行按钮。 8. 程序将会在选定的单元格中显示当前的日期和时间,并将字体颜色设置为红色。 这个练习题可以帮助你了解如何使用Excel VBA编写一个简单的宏,并且给你一些基本的编程概念。如果你想进一步提高,请尝试编写更复杂的宏,或者学习更多Excel VBA的知识。 ### 回答3: Excel VBA练习题通常是为了帮助练习和提高对Excel VBA编程的理解和掌握能力。这些练习题可以涵盖各种不同的主题和难度级别。 以下是一个关于Excel VBA练习题的示例: 假设有一个包含学生考试成绩的Excel表格,其中列A为学生姓名,列B为语文成绩,列C为数学成绩。请你编写一个VBA宏,在表格的末尾添加两列,分别显示每个学生的总成绩和平均成绩。 解答: 首先,我们需要在“开发工具”选项卡中激活“Visual Basic”编辑器。然后,在编辑器中创建一个新的模块,然后编写以下VBA代码: ```VBA Sub AddColumns() Dim lastRow As Long Dim i As Long lastRow = Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行 '在最后一列的右侧添加两列 Columns(lastRow + 1).Insert Shift:=xlToRight Columns(lastRow + 1).Insert Shift:=xlToRight '在新添加的两列中填入标题 Cells(1, lastRow + 1).Value = "总成绩" Cells(1, lastRow + 2).Value = "平均成绩" '在每一行计算总成绩和平均成绩 For i = 2 To lastRow Cells(i, lastRow + 1).Value = Cells(i, lastRow - 1).Value + Cells(i, lastRow).Value '计算总成绩 Cells(i, lastRow + 2).Formula = "=AVERAGE(B" & i & ":C" & i & ")" '计算平均成绩 Next i '调整新添加列的宽度 Columns(lastRow + 1).AutoFit Columns(lastRow + 2).AutoFit End Sub ``` 然后,点击运行按钮或按下F5键执行宏。该宏将会在表格的末尾添加两列“总成绩”和“平均成绩”,并在每一行计算相应的值。最后,自动调整新添加列的宽度,以便显示完整的内容。 以上是一个基本的Excel VBA练习题的解答示例。实际上,练习题的难度和内容可能因人而异。练习题可以涉及更复杂的功能,例如循环、条件语句、数据处理等。通过不断练习和尝试,可以提高对Excel VBA编程的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值