如何让公式在 Mircosoft Excel 单元格背景中运行并允许用户输入数据?

如何让公式在 Mircosoft Excel 单元格背景中运行并允许用户输入数据?

我正在尝试创建一个电子表格来汇编来自多个单元格的数据。

A1本质上我希望单元格Sheet1能够Sheet2反映用户输入的相同信息,而无需在输入数据时删除公式。

我需要用户能够在这些单元格中输入数据,但是通过使用=Sheet2!A1=Sheet1!A1我创建了循环引用,并且还让用户可以删除公式。

有人可以推荐一种解决这个问题的方法吗?

答案1

您不能在包含公式的单元格中输入数据,但同时保留该公式。

一种解决方案是让用户在不同的单元格中输入数据,然后在A1两张工作表中引用该单元格。

答案2

如果没有宏,您就无法做到这一点。此代码应该可以工作:

Private Sub Worksheet_Change(ByVal Target As Range)
    therow = 1
    thecolumn = 1
    Dim wks As Worksheet
    cellrow = Target.Row
    cellcolumn = Target.Column
    If (cellrow = therow And cellcolumn = thecolumn) Then
        Set wks = ThisWorkbook.Worksheets("Sheet2")
        wks.Cells(cellrow, cellcolumn) = Target.Value
    End If
End Sub

ALT使用+打开宏F11,双击工作表1在左侧,然后将代码粘贴到右侧。此代码在 中执行Sheet 1,因此它会将 中的更改复制到Sheet1 A1Sheet2 A1

每次工作表中有变化时,都会执行此宏。它会检查更改的单元格是否位于第 1 行第 1 列(单元格 A1),然后将值复制到同一单元格中工作表2

如果你想检查更改工作表2工作表1然后,还有:

  1. 双击工作表2在左边。
  2. 将代码粘贴到右侧。
  3. 更改该行Set wks = ThisWorkbook.Worksheets("Sheet2")以指示新的目的地:Set wks = ThisWorkbook.Worksheets("Sheet1")

现在,这个宏使用变量决定将值复制到另一张工作表。一开始,它们在行中设置为 1 therow=1thecolumn=1这意味着我们对单元格感兴趣A1. 并且我们进一步检查修改后的单元格是否与行中的这些值匹配If (cellrow = therow And cellcolumn = thecolumn) Then

您可以修改值以根据您的需要进行自定义,甚至检查完整的列或行,例如:

将验证行更改为If (cellcolumn = thecolumn) Then将会复制发生在与变量具有相同值的列中的更改,thecolumn无论它是哪一行。

其他例子:

将验证行更改为If (cellcolumn > thecolumn) Then将复制发生在大于值的任何列中的更改,thecolumn无论它是哪一行。

相关内容