使用EXCEL VBA创建一个1000行的工作表,第一列为CommandButton按钮,后续字段包括有序号、查证日期、提报方、提报方客户名称、提报方式、数量、窜货方、窜货方客户名称、是否结案、备注。点击对应行的按钮单独弹出窗体显示本行内对应字段的所有信息
时间: 2023-12-23 21:02:32 浏览: 138
Excel-VBA宏编程实例源代码-单击命令按钮后显示执行状态.zip
以下是实现上述功能的VBA代码:
首先,在工作簿中新建一个工作表,并命名为“Data”。
然后,在“Data”工作表的第一行中插入字段名称,即“Command Button”、“序号”、“查证日期”、“提报方”、“提报方客户名称”、“提报方式”、“数量”、“窜货方”、“窜货方客户名称”、“是否结案”、“备注”。
接下来,在“Data”工作表的第二行中插入一个命令按钮控件,命名为“Button1”,并设置它的Caption属性为“查看”。
然后,使用以下VBA代码生成1000行数据,并将每行数据的第一列设置为一个与“Button1”相同的命令按钮控件:
Sub GenerateData()
Dim i As Integer
For i = 1 To 1000
With Worksheets("Data")
.Cells(i + 1, 1).Value = "Button1"
.Cells(i + 1, 2).Value = i
.Cells(i + 1, 3).Value = Date
.Cells(i + 1, 4).Value = "提报方" & i
.Cells(i + 1, 5).Value = "提报方客户名称" & i
.Cells(i + 1, 6).Value = "提报方式" & i
.Cells(i + 1, 7).Value = i
.Cells(i + 1, 8).Value = "窜货方" & i
.Cells(i + 1, 9).Value = "窜货方客户名称" & i
.Cells(i + 1, 10).Value = "是"
.Cells(i + 1, 11).Value = "备注" & i
End With
Next i
End Sub
现在,我们需要为“Button1”添加一个单击事件。在VBA编辑器中打开“Data”工作表的代码窗口,并添加以下代码:
Private Sub Button1_Click()
Dim selectedRow As Integer
selectedRow = ActiveCell.Row
If selectedRow > 1 Then
Dim popupForm As New UserForm1
popupForm.Show
popupForm.txtIndex.Value = Worksheets("Data").Cells(selectedRow, 2).Value
popupForm.txtDate.Value = Worksheets("Data").Cells(selectedRow, 3).Value
popupForm.txtReport.Value = Worksheets("Data").Cells(selectedRow, 4).Value
popupForm.txtReportCustomer.Value = Worksheets("Data").Cells(selectedRow, 5).Value
popupForm.txtReportMethod.Value = Worksheets("Data").Cells(selectedRow, 6).Value
popupForm.txtQuantity.Value = Worksheets("Data").Cells(selectedRow, 7).Value
popupForm.txtGray.Value = Worksheets("Data").Cells(selectedRow, 8).Value
popupForm.txtGrayCustomer.Value = Worksheets("Data").Cells(selectedRow, 9).Value
popupForm.txtIsClosed.Value = Worksheets("Data").Cells(selectedRow, 10).Value
popupForm.txtComment.Value = Worksheets("Data").Cells(selectedRow, 11).Value
End If
End Sub
在上面的代码中,我们首先获取当前选定单元格所在的行号,并检查它是否大于1(即排除第一行的字段名称行)。然后,我们创建一个名为“UserForm1”的自定义用户窗体,并将该窗体的各个文本框控件的值设置为当前选定行的对应单元格的值。最后,我们显示该窗体。
接下来,我们需要创建一个自定义用户窗体。在VBA编辑器中选择“插入”菜单下的“用户窗体”选项,在弹出的“用户窗体设计器”中添加以下文本框控件:
- txtIndex:用于显示“序号”字段的值。
- txtDate:用于显示“查证日期”字段的值。
- txtReport:用于显示“提报方”字段的值。
- txtReportCustomer:用于显示“提报方客户名称”字段的值。
- txtReportMethod:用于显示“提报方式”字段的值。
- txtQuantity:用于显示“数量”字段的值。
- txtGray:用于显示“窜货方”字段的值。
- txtGrayCustomer:用于显示“窜货方客户名称”字段的值。
- txtIsClosed:用于显示“是否结案”字段的值。
- txtComment:用于显示“备注”字段的值。
在自定义用户窗体的代码窗口中添加以下代码:
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
End Sub
在上面的代码中,我们没有添加任何代码,因为我们不需要在窗体加载或单击事件中执行任何操作。
现在,我们已经完成了所有必要的代码编写。保存所有更改后,可以执行“GenerateData”子程序以生成1000行数据。然后,单击任何一个命令按钮,即可弹出窗体显示该行的详细信息。
阅读全文