excel - 有多个数据表时如何使用VBA修改所选Excel数据表中的记录
问题描述
我有一个数据输入表单和多个名为 Table1 和 Table2 的数据表。我想使用数据输入表单修改所选数据表中特定行中的数据。在数据输入表单中,有两个按钮,分别称为 SAVE 和 MODIFY 按钮。首先有一个选项可以选择我要保存数据的表。然后我点击修改按钮,它要求我们输入序列号进行修改。当我在选定的数据表中输入特定行的序列号时,该特定行的所有详细信息应显示在数据输入表单上,以便使用“保存”按钮将其修改并保存到同一行。但它给出了一个错误,提到“找不到记录”并且它无法检测到数据表的选择。下面给出了我用于修改按钮的 VBA 代码。请先生帮我解决这个问题。
Sub ModifyRecord()
将 shTable 调暗为工作表 将 shForm 调暗为工作表 将
iCurrentRow 调暗为整数
将 sTableName 调暗为字符串
Set shForm = ThisWorkbook.Sheets("Form")
sTableName = shForm.Range("H7").Value
Set shTable = ThisWorkbook.Sheets(sTableName)
Dim irow As Long
Dim iSerial As Long
iSerial = Application.InputBox("Please enter Serial Number to make
modification.", "Modify", , , , , , 1)
On Error Resume Next
irow = Application.WorksheetFunction.IfError _
(Application.WorksheetFunction.Match(iSerial,
Sheets("sTableName").Range("A:A"), 0), 0)
On Error GoTo 0
If irow = 0 Then
MsgBox "No record found.", vbOKOnly + vbCritical, "No Record"
Exit Sub
End If
Sheets("Form").Range("L1").Value = irow
Sheets("Form").Range("M1").Value = iSerial
Sheets("Form").Range("H9").Value = Sheets("sTableName").Cells(irow, _
2).Value
Sheets("Form").Range("H11").Value = Sheets("sTableName").Cells(irow, _
3).Value
Sheets("Form").Range("H13").Value = Sheets("sTableName").Cells(irow, _
4).Value
Sheets("Form").Range("H15").Value = Sheets("sTableName").Cells(irow, _
5).Value
Sheets("Form").Range("H17").Value = Sheets("sTableName").Cells(irow, _
6).Value
Sheets("Form").Range("H19").Value = Sheets("sTableName").Cells(irow, _
7).Value
Sheets("Form").Range("H21").Value = Sheets("sTableName").Cells(irow, _
8).Value
Sheets("Form").Range("H23").Value = Sheets("sTableName").Cells(irow, _
9).Value
结束子
解决方案
推荐阅读
- java - 无法在 Firebase 存储中检索图像 url
- flash - 构建使用 Flash SDK 2 构建的遗留项目
- qt - 如何在 QML 中删除图表视图与其 Plotarea 之间的间距
- angular - CSS样式不生效
- node.js - 当 xml 模式验证失败时,Nodejs libxmljs 使 docker 容器崩溃
- ruby - 为什么我不能将类错误与链一起进一步发送?
- javascript - 从 javascript 对象列表中查找最多前两次出现的元素
- powershell - 使用 Powershell 过滤文件扩展名
- angular - Angular:“Observable”类型上不存在属性“then”
- jenkins - java.io.IOException:找不到 allure 命令行