使用命令按钮

时间:2015-06-03 08:09:41

标签: excel-vba vba excel

先生,我在excell有问题。 我有一个文件在excell由几张纸组成。 在工作表“学生”中,有一个单元格范围内的学生列表名称(b2:b21)以及范围内的主题列表(d2:d5)。

在表格“表格”中,有表格输入他们在范围内的测试结果(D7:M7),学生姓名的单元格(D2)和他们的主题单元格(D4)。 (D2)和(D4)是“学生”表中的下拉列表和来源。

我还创建了几个主题表

我想将数据从“表格”表格范围(D7:M7)复制到“数学”表格或“物理”表格或等等范围(C4:L23),取决于单元格中选择的内容(D2)和( D4)。 我还添加了activex控制命令按钮“提交”。因此,当我按下“提交”按钮时,“表格”表格范围内的数据(D7:M7),复制到范围内的另一张纸张(C4:L23)。 我需要vba代码来编写“提交”命令按钮,以便完成处理。

1 个答案:

答案 0 :(得分:0)


我假设这是“表单”工作表看起来像
Form worksheet
“和”主题“工作表如下所示:
subject worksheet
单击该按钮时,结果将复制到相应的主题工作表中:
Result copied
以下是按钮的源代码:

Option Explicit
Dim ResultWorkbook As Workbook
Dim FormWorksheet As Worksheet
Dim SubjectWorksheet As Worksheet
Dim ListRange As Range

Sub CopyResult()

Dim LastRow As Long
Dim CurrentRow As Long

Set ResultWorkbook = Workbooks(ActiveWorkbook.Name)
Set FormWorksheet = ResultWorkbook.Sheets("Form")
Set SubjectWorksheet = ResultWorkbook.Sheets(FormWorksheet.Range("D4").Value)
Set ListRange = FormWorksheet.Range("D7:M7")

Application.ScreenUpdating = False

LastRow = SubjectWorksheet.Cells(Rows.Count, "B").End(xlUp).Row

For CurrentRow = 4 To LastRow
    If SubjectWorksheet.Range("B" & CurrentRow).Value = FormWorksheet.Range("D2").Value Then
        SubjectWorksheet.Range("C" & CurrentRow & ":L" & CurrentRow).Value = ListRange.Value
    End If
Next

End Sub