Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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有没有办法将每个迭代结果复制到一个单独的表中?_Excel_Save_Iteration_Output - Fatal编程技术网

EXCEL有没有办法将每个迭代结果复制到一个单独的表中?

EXCEL有没有办法将每个迭代结果复制到一个单独的表中?,excel,save,iteration,output,Excel,Save,Iteration,Output,我有以下问题: 我想为单元格A1尝试不同的值。每次我将值输入A1时,单元格B1、C1、D1和E1都会发生变化。是否有任何方法可以创建一个新表,自动将这些迭代的结果复制到单独的单元格中。例如: 我选择A1=10。这将自动显示在A3。B1、C1、D1和E1的所有值随后自动存储在B3、C3、D3和E3。然后我改变A1=20。B1、C1、D1和E1的所有新值现在存储在B4、C4、D4和E4 有什么建议吗? 谢谢你抽出时间 如果A1发生变化,单元b1、c1、d1和e1发生变化,这可以通过USS代码解决 对

我有以下问题: 我想为单元格A1尝试不同的值。每次我将值输入A1时,单元格B1、C1、D1和E1都会发生变化。是否有任何方法可以创建一个新表,自动将这些迭代的结果复制到单独的单元格中。例如: 我选择A1=10。这将自动显示在A3。B1、C1、D1和E1的所有值随后自动存储在B3、C3、D3和E3。然后我改变A1=20。B1、C1、D1和E1的所有新值现在存储在B4、C4、D4和E4

有什么建议吗? 谢谢你抽出时间

  • 如果A1发生变化,单元b1、c1、d1和e1发生变化,这可以通过USS代码解决
  • 对于自动添加新行,可以使用此宏
  • 要使用该宏,只需按ctrl+t(键盘快捷键由您决定)

  • 如果A1发生变化,单元b1、c1、d1和e1发生变化,这可以通过USS代码解决
  • 对于自动添加新行,可以使用此宏

  • 要使用该宏,只需按ctrl+t(键盘快捷键由您决定)

    将此代码放入“工作表更改”模块中,每次更改单元格A1时,结果将从第3行向下添加

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim i As Integer
        i = 3
    
        'If there is a change to A1
        If Target.Address = ActiveSheet.Range("A1").Address Then
            Do Until ActiveSheet.Cells(i, 1).Value = vbNullString
                i = i + 1
            Loop
    
            ActiveSheet.Cells(i, 1).Resize(, 5).Value = ActiveSheet.Range("A1:E1").Value
        End If
    End Sub
    

    将此代码放在“工作表更改”模块中,每次更改单元格A1时,将从第3行向下添加结果

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim i As Integer
        i = 3
    
        'If there is a change to A1
        If Target.Address = ActiveSheet.Range("A1").Address Then
            Do Until ActiveSheet.Cells(i, 1).Value = vbNullString
                i = i + 1
            Loop
    
            ActiveSheet.Cells(i, 1).Resize(, 5).Value = ActiveSheet.Range("A1:E1").Value
        End If
    End Sub
    

    我把你的代码缩短了一点,希望你不介意。此外,不必在单元格中循环直到找到vbNullString,只需使用
    .End
    属性,正如Roro在回答中所示!我把你的代码缩短了一点,希望你不介意。此外,不必在单元格中循环直到找到vbNullString,只需使用
    .End
    属性,正如Roro在回答中所示!