Excel VBA 产品主数据用户窗体ListBox关联工作表删除功能实现问题
VBA产品主数据窗体删除功能修复方案
现有代码问题
- 未校验是否选中待删除条目,若未双击选择ListBox条目直接点删除按钮会触发运行错误
- 删除行后未更新工作表A列的序号,后续新增、更新操作会出现序号错位
修复方案
直接替换你原来的btn_ProductMaster_Dlt_Click过程即可:
Private Sub btn_ProductMaster_Dlt_Click() ' 校验是否选中待删除条目 If Me.txt_srno.Value = "" Or Not IsNumeric(Me.txt_srno.Value) Then MsgBox "请先双击选中ListBox中要删除的产品条目", vbCritical Exit Sub End If Dim sh As Worksheet Set sh = ThisWorkbook.Worksheets("Product_Master") Dim delRow As Integer delRow = Me.txt_srno.Value + 1 ' 匹配工作表行号,数据从第2行开始存储,A列序号从1开始计数 ' 删除对应数据行 sh.Rows(delRow).Delete ' 重新整理A列序号,避免后续操作序号错乱 *不需要自动对齐序号可以删除这段代码* Dim lr As Integer lr = Application.WorksheetFunction.CountA(sh.Range("A:A")) If lr > 1 Then Dim i As Integer For i = 2 To lr sh.Range("A" & i).Value = i - 1 Next i End If ' 清空所有输入框 Me.txt_srno.Value = "" Me.txt_id.Value = "" Me.txt_Product_Name.Value = "" Me.txt_Product_colour.Value = "" Me.txt_Purchase_Price.Value = "" MsgBox "产品已删除", vbInformation ' 刷新ListBox显示最新数据 Call show_data End Sub
使用说明
删除功能操作流程:
- 在ListBox列表中双击要删除的产品条目,对应数据会自动填充到上方输入框
- 点击删除按钮即可完成操作,列表会自动刷新显示最新的产品主数据
内容的提问来源于stack exchange,提问作者NAITIK JAIN
相关产品推荐
相关产品推荐

