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 有啥方法可以将每个迭代结果复制到单独的表中?的主要内容,如果未能解决你的问题,请参考以下文章
我想把几个excl表格当中的数据统一到一张新表中,请问有啥简单方法呢?