Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Excel 每次提交Microsoft表单时触发Get宏_Excel_Vba_Microsoft Forms - Fatal编程技术网

Excel 每次提交Microsoft表单时触发Get宏

Excel 每次提交Microsoft表单时触发Get宏,excel,vba,microsoft-forms,Excel,Vba,Microsoft Forms,我用MicrosoftForms制作了一个表单,在同一个Excel文件中,我有一个宏,每当在例如A2-A20中发生更改时都会触发 所以我的目标是在每次有人提交数据时触发宏。 但当有人提交表单并将数据添加到Excel文件时,宏似乎不会被触发。 当我自己在其中一个单元格中写入内容时,宏工作正常 Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable Ke

我用MicrosoftForms制作了一个表单,在同一个Excel文件中,我有一个宏,每当在例如A2-A20中发生更改时都会触发

所以我的目标是在每次有人提交数据时触发宏。 但当有人提交表单并将数据添加到Excel文件时,宏似乎不会被触发。
当我自己在其中一个单元格中写入内容时,宏工作正常

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    
    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("A2:A20")
 
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
        
        'Get name for new workbook
        Dim WBnew As Variant
        WBnew = Range("E" & Target.Row).Value
        
        ' Creates a reference to workbook object
        Dim WB As Workbook
 
        'Adding a New Workbook
        Set WB = Workbooks.Add
    
        'Set where to save the Workbook and name
        ActiveWorkbook.SaveAs Filename:="C:\Users\" & WBnew & ".xls"
 
         'Copy entire row
        Workbooks("Test forms.xlsm").Worksheets("Form1").Range(Target.Row & ":" & Target.Row).Copy
 
        'Paste to row 2 in the new workbook
        Workbooks(WBnew & ".xls").Worksheets("Sheet1").Range("1:1").Insert
        
        'Copy row 1 in old workbook and paste it to the new workbooks row 1
        Workbooks("Test forms.xlsm").Worksheets("Form1").Range("1:1").Copy
        Workbooks(WBnew & ".xls").Worksheets("Sheet1").Range("1:1").Insert

        'Save the workbook
        ActiveWorkbook.Save
 
End If
 
End Sub

当新数据从表单中输入时,您知道该怎么做才能触发宏吗


提前谢谢

什么“当我自己在牢房里写东西时效果很好”?我们应该推断出你有什么问题吗?然后,您是否使用
工作表\u Change
事件,并且还需要触发公式更新在单元格中产生的更改?如果是,则应使用
工作表\u计算
事件。如果这不是您的问题,请编辑您的问题并共享您使用的代码。对此表示抱歉。我也用一些代码更新了我的问题。
Change
事件仅在单元格内容更改时触发。不清楚您想要触发代码的确切内容。您正在谈论的范围内是否有公式,并且您希望在其他工作表中修改这些单元格的值时触发事件?@SJR I当其中一个单元格中的内容发生更改时,将触发什么样的代码。当有人提交表单时,答案将自动添加到工作表的新行,这将触发代码(但不会)。如果我只是手动在单元格中写入内容,它将被触发。