EXCEL 有啥方法可以将每个迭代结果复制到单独的表中?

Posted

技术标签:

【中文标题】EXCEL 有啥方法可以将每个迭代结果复制到单独的表中?【英文标题】:EXCEL Any way to copy every iteration result into a separate table?EXCEL 有什么方法可以将每个迭代结果复制到单独的表中? 【发布时间】:2013-03-11 18:31:18 【问题描述】:

我有以下问题: 我想为单元格 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 中。

关于如何做到这一点的任何建议? 感谢您的宝贵时间!

【问题讨论】:

【参考方案1】:

将此代码放在工作表 Worksheet_Change 模块中,每次更改单元格 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 在他的回答中所示!【参考方案2】:
    如果A1发生变化,单元格b1、c1、d1、e1发生变化,通常可以通过代码解决 要自动添加新行,您可以使用此宏
Sub Macro4()
'
' Macro4 Macro
'
' Keyboard Shortcut: Ctrl+t
'
Range("A1:E1").Select
Selection.Copy
Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
End Sub

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

【讨论】:

以上是关于EXCEL 有啥方法可以将每个迭代结果复制到单独的表中?的主要内容,如果未能解决你的问题,请参考以下文章

怎么可以把EXCEL中多个表格单独提取出来

我想把几个excl表格当中的数据统一到一张新表中,请问有啥简单方法呢?

有啥方法可以让我使用 Jquery 为每个元素单独查找类?

在迭代集合以获取当前计数器数值时,python中有啥方法吗? [复制]

怎么将Excel单独两列内容合并为一列

我可以将超过 100 万行的 SQL 结果复制并粘贴到 Excel 中吗?