Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA在多张工作表中修改选定Excel工作表中的记录_Excel_Vba_Record - Fatal编程技术网

如何使用VBA在多张工作表中修改选定Excel工作表中的记录

如何使用VBA在多张工作表中修改选定Excel工作表中的记录,excel,vba,record,Excel,Vba,Record,我有一个Excel数据输入表和两个Excel数据库表,如表1和表2。在数据输入表单中,我提供了一个选择Table1或Table2的选项,我想使用数据输入表单中的“修改”按钮,根据我的表格选择修改Table1记录或Table2记录。表格记录应根据序列号进行修改。但是,当我选择一个表并打算使用序列号修改所选表中的记录时,错误显示为“未找到记录”。为什么呢?如何解决这个问题? 下面给出了修改记录的模块1编码 Sub ModifyRecord() Dim iRow As L

我有一个Excel数据输入表和两个Excel数据库表,如表1和表2。在数据输入表单中,我提供了一个选择Table1或Table2的选项,我想使用数据输入表单中的“修改”按钮,根据我的表格选择修改Table1记录或Table2记录。表格记录应根据序列号进行修改。但是,当我选择一个表并打算使用序列号修改所选表中的记录时,错误显示为“未找到记录”。为什么呢?如何解决这个问题? 下面给出了修改记录的模块1编码

Sub ModifyRecord()
    
    

    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("Database").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("Database").Cells(iRow, 2).Value
     
    Sheets("Form").Range("H11").Value = Sheets("Database").Cells(iRow, 3).Value
    
    Sheets("Form").Range("H13").Value = Sheets("Database").Cells(iRow, 4).Value
    
    Sheets("Form").Range("H15").Value = Sheets("Database").Cells(iRow, 5).Value
    
    Sheets("Form").Range("H17").Value = Sheets("Database").Cells(iRow, 6).Value
    
    Sheets("Form").Range("H19").Value = Sheets("Database").Cells(iRow, 7).Value
    
    Sheets("Form").Range("H21").Value = Sheets("Database").Cells(iRow, 8).Value
    
    Sheets("Form").Range("H23").Value = Sheets("Database").Cells(iRow, 9).Value
    
    
    
End Sub

sheet1(form) coding for modifying a record is given below

Private Sub cmdModify_Click()

    Dim msgValue As VbMsgBoxResult
    
    msgValue = MsgBox("Do you want to modify the record?", vbYesNo + vbQuestion, "Modify Record")
    
        If msgValue = vbYes Then
        
            Call ModifyRecord
            
        End If
       
End Sub

如何修复此错误。请帮助我删除/注释您的关于错误的
语句,以及出现的错误是什么?欢迎使用SO!我在代码中没有看到表1或表2。在我的测试数据中,您的代码按照编写的方式工作,没有错误。也许数据库中真的没有序列号!您在表单中输入的列?我应该在代码中包括表1和表2吗?数据库中没有序列号列。这段代码确实适用于单个数据库。但是,当我在数据输入表单中提供选择表的选项时,就会出现这个问题,我认为这段代码不会检测表的选择。请帮我解决这个问题,非常感谢您抽出时间