在enterbox中输入学生的学号,反馈学生学号、班级、姓名、上交时间,第一行的4列分别以学号、班级、姓名、上交时间命名,并生成一个excel
时间: 2024-09-18 19:01:25 浏览: 74
在Excel VBA中,你可以使用`Application.InputBox`函数结合`Microsoft.Office.Interop.Excel`库来实现用户输入学号后获取对应的学生信息,并将其保存到一个新的Excel工作表中。首先,确保已经引用了Excel对象模型。
```vba
Sub InputAndExportToExcel()
Dim ws As Worksheet ' 工作表对象
Dim rng As Range ' 用于存储数据的范围
Dim inputBoxValue As String ' 用户输入的学号
Dim studentData As Variant ' 包含学生信息的数组
Dim excelApp As Object ' Excel应用对象
Dim excelWorkbook As Object ' 工作簿对象
Dim excelWorksheet As Object ' 新的工作表对象
Set excelApp = CreateObject("Excel.Application")
Set excelWorkbook = excelApp.Workbooks.Add()
' 输入学号
inputBoxValue = Application.InputBox("请输入学号", "学生信息", "", , Type:=xlText)
' 假设你有一个包含学生信息的二维数组或列表,这里仅作为示例
studentData = Array( _
Array("001", "一班", "张三", "2023-01-15"), _
Array("002", "二班", "李四", "2023-01-16") _
)
' 根据用户输入查找学生数据
For i = LBound(studentData, 1) To UBound(studentData, 1)
If inputBoxValue = studentData(i)(0) Then
Set ws = excelWorkbook.Sheets.Add(After:=excelWorkbook.Sheets(excelWorkbook.Sheets.Count)) ' 创建新工作表
ws.Name = "学生信息" ' 设置工作表名称
' 写入第一行标题
rng = ws.Cells(1, 1)
rng.Value = "学号"
rng.Offset(1, 0).Value = "班级"
rng.Offset(1, 1).Value = "姓名"
rng.Offset(1, 2).Value = "上交时间"
' 写入学生数据
rng = ws.Cells(ws.Rows.Count, 1).End(xlUp) ' 获取最后一行
rng.Offset(1, 0).Value = studentData(i)(0)
rng.Offset(1, 1).Value = studentData(i)(1)
rng.Offset(1, 2).Value = studentData(i)(2)
rng.Offset(1, 3).Value = studentData(i)(3)
Exit For
End If
Next i
' 提示用户保存文件
MsgBox "学生信息已保存至新的Excel工作簿,请检查!"
excelWorkbook.SaveAs Filename:="学生信息.xlsx" ' 保存到指定路径
excelWorkbook.Close SaveChanges:=True
Set excelWorksheet = Nothing
Set excelWorkbook = Nothing
Set excelApp = Nothing
End Sub
```
运行此宏后,用户输入学号后,会根据找到的学生信息创建一个新的Excel工作表并填写数据。
阅读全文