从 Excel 中不断变化的值复制另一个 Excel 工作表中的值



我有一个 excel 宏,它可以在列中搜索H1中最接近的值,然后搜索该值的位置。现在,我想选择范围上方的5个单元格和下方的5个单元格,然后将该值粘贴到另一张工作表中。

我有一个实时的 excel 表,其中H1的平均值不断变化。这意味着最近值的位置也会不断变化。我编写的代码可以正确粘贴值,但在H1中进行更改时不会自动更改。

所以我希望每当H1中的值发生变化时,值的位置也应该改变,并且应该反映在另一个单元格中。

如果H1中的值保持不变,下面的代码工作正常,但我希望每当它被更改时,值也应该在另一个工作表中更改。

Range("B1").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C[19]"'

此公式从其他工作表复制值

Range("B1").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C[19]"'

我希望公式中的行应该是动态的,以便可以通过更改另一个值的位置来更改它们。

我不完全理解你的问题,但听起来你想把代码放在 Sheet1 中的 Worksheet_Change(( 子中。下面的代码将在 Sheet1 中更改 H1 时执行,但我不清楚的是您希望在另一张工作表(我将其命名为"2"(上发生什么。我试图像你问的那样,但这对我来说没有意义。

希望这能给你一个开始或帮助你澄清你的问题。要测试代码,请将代码放在 Sheet1 中并更改 H1 的值。代码将在停止线处中断,因此您可以探索要使用编辑器执行的操作。

Option Explicit
Dim sh As Worksheet, r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
stop  'remove this once you've worked out the problems marked ? below
Set sh = ThisWorkbook.Worksheets("2")
sh.activate
Set r = sh.Range("B1")
r.FormulaR1C1 = "=Sheet1!R[-4]C[19]" '?
r.copy                               '?
sh.paste                             '?
End If
End Sub

相关内容

最新更新